【发布时间】:2013-11-29 05:31:11
【问题描述】:
我要在这里吃香蕉。我创建了一个包含两个字段的简单表单。一个是文本字段,另一个是文本区域。表单看起来不错,但我不会验证 - 无论我尝试什么。
这是我的表单类:
class MyForm extends Form
{
public function __construct()
{
parent::__construct();
$this->add(array(
'name' => 'subject',
'required' => true,
'allowEmpty' => false,
'options' => array(
'label' => 'Betreff*',
),
'type' => 'Zend\Form\Element\Text',
'validators' => array(
// validators for field "name"
new \Zend\Validator\NotEmpty(),
),
'filters' => array(
// filters for field "name"
array('name' => 'Zend\Filter\StringTrim'),
),
));
$this->add(array(
'name' => 'text',
'required' => true,
'allowEmpty' => false,
'options' => array(
'label' => 'Nachricht*',
),
'type' => 'Zend\Form\Element\Textarea',
));
$this->add(new Element\Csrf('security'));
}
}
valdiators 和 filters 只是我尝试过的众多事情之一......
在我的控制器中,表单始终有效:
$form = new MyForm();
$request = $this->getRequest();
if ($request->isPost()) {
$form = new MyForm();
$form->setData($request->getPost());
echo $form->isValid();
if($form->isValid()) { ... }
我总是通过if。
我想知道:为什么我在设置required=true 时仍然需要验证器?为什么他们在不做任何事情的情况下实现这样的属性?
但仍然:如何验证我的表单?我只想要一个像trim 这样的清理过滤器和一个NotEmpty 验证器。
谢谢!
【问题讨论】:
标签: php validation zend-framework2 zend-form-element zend-form2