Я нашел другой пост ( ZF2 InputFilter не проверяет fieldset ) для моей проблемы, но это не помогло.
У меня есть объект категории, и я хочу проверитьдлина заголовка.Итак, моя модель (без существующего геттера и сеттера)
class Category
{
/**
* @var int
*/
private $id;
/**
* @var string
*/
private $name;
}
Моя форма для Category
:
class CategoryForm extends Form
{
public function init()
{
$this->setHydrator(new ClassMethods(false));
$this->setObject(new Category());
$this->setInputFilter(new CategoryFilter());
$this->add([
'name' => 'id',
'type' => 'hidden'
]);
$this->add([
'name' => 'name',
'type' => 'text'
]);
$this->add([
'name' => 'submit',
'type' => 'submit'
]);
}
}
и фильтр, который в данный момент не работает.
class CategoryFilter extends InputFilter
{
public function init()
{
$this->add([
'name' => 'name',
'required' => true,
'filters' => [
['name' => StringTrim::class]
],
'validators' => [
[
'name' => StringLength::class,
'options' => [
'min' => 5
]
]
]
]);
}
}
И если кому-то понадобится моя addAction в контроллере:
public function addAction()
{
$request = $this->getRequest();
if ($request->isPost()) {
$this->form->setData($request->getPost());
if ($this->form->isValid()) {
$this->mapper->save($this->form->getData());
$this->redirect()->toRoute('categories');
}
}
return [
'form' => $this->form
];
}
В каждом найденном примере он должен работать.Но моя форма никогда не проверяется и не фильтруется (с отделкой).
Я что-то забыл?Почему это не работает?