【发布时间】:2018-11-14 08:58:21
【问题描述】:
我为我的问题找到了另一个帖子 (ZF2 InputFilter not validating fieldset),但它没有帮助。
我有一个类别实体,我想验证标题的长度。 所以我的模型(没有现有的 getter 和 setter)
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
];
}
在我找到的每个示例中,它都应该有效。但我的表单从未经过验证或过滤(使用修剪)。
我是不是忘记了什么?为什么它不起作用?
【问题讨论】:
标签: zend-framework zend-form zend-framework3 zend-filter