Как заставить проверку набора полей ZF2 работать?

У меня есть простая форма, в настоящее время состоящая из одного набора полей. Теперь я хочу, чтобы поля были отфильтрованы и проверены. Поэтому я реализовал метод getInputFilterSpecification() в моем Fieldset учебный класс:

...

class FooFieldset extends \Zend\Form\Fieldset
{

public function __construct($name = null, $options = array())
{
parent::__construct($name, $options);

$this->setHydrator(new ClassMethods(false));
$this->setObject(new Buz());

$this->setLabel('Baz');

$this->add(array(
'type' => 'text',
'name' => 'bar',
'options' => array(
'label' => _('bar')
)
));
}

public function getInputFilterSpecification()
{
return [
'bar' => [
'required' => true,
'filters' => [
0 => [
'name' => 'Zend\Filter\StringTrim',
'options' => []
]
],
'validators' => [],
'description' => _('bar lorem ipsum'),
'allow_empty' => false,
'continue_if_empty' => false
]
];
}
}

и добавил Fieldset к Form:

...

class BuzForm extends \Zend\Form\Form
{

public function __construct($name = null, $options = array())
{
parent::__construct($name, $options);

$this->setAttribute('role', 'form');

$this->add(array(
'name' => 'baz-fieldset',
'type' => 'Buz\Form\BazFieldset'
));

$this->add(array(
'type' => 'submit',
'name' => 'submit',
'attributes' => array(
'value' => 'preview'
)
));

}
}

Проблема в том, что InputFilter технические характеристики полностью игнорируются. Я установил точку останова в FooFieldset#getInputFilterSpecification() и, конечно, даже проверил это с die() — метод не вызывается.

Что здесь не так и как заставить его работать правильно?

0

Решение

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]