我尝试验证的形式,但我不能得到错误消息。ZendFramework 2.0.0rc3表
//这是我的代码:
$form = new TestForm();
$form->setInputFilter(new TestFilter());
$data = array('id'=>'','email'=>'[email protected]');
$form->setData($data);
if($form->isValid()){
echo 'ok';
} else {
echo 'not ok <br/>';
$messagesForm = $form->getMessages();
$filter=$form->getInputFilter();
$messagesFilter=$filter->getMessages();
var_dump($messagesForm);
var_dump($messagesFilter);
}
/////////////////
Output
not ok
//messagesForm
array
empty
//MessagesFilter
array
'id' =>
array
'isEmpty' => string 'Value is required and can't be empty' (length=36)
_
如何是可能的?该过滤器是好的,但我不能从形式的错误消息 可能是一个错误,或者我做错了什么?
全码:
TestFilter: _
<?php
namespace mvc\filter;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\Factory as InputFactory;
class TestFilter extends InputFilter
{
public function __construct()
{
$factory = new InputFactory();
$this->add($factory->createInput(array('name'=>'id','required'=>true)));
$this->add($factory->createInput(array('name'=>'email','required'=>true)));
}
}
?>
_
TESTFORM _
命名空间MVC \形式;
使用Zend \ InputFilter \ Factory;
使用Zend \ Form \ Element;
使用Zend \ Form \ Form;
class TestForm extends Form
{
public function prepareElements()
{
$this->add(array(
'name' => 'id',
'attributes' => array(
'type' => 'text',
'label' => 'Your name',
),
));
$this->add(array(
'name' => 'email',
'attributes' => array(
'type' => 'email',
'label' => 'Your email address',
),
));
}
}
?>
_
是不是这个错误? “id is empty” – 2012-08-14 10:33:41
是的错误ID是空的,但var_dump($ messagesForm)和var_dump($ messagesFilter)应该显示相同或不是? – user1597726 2012-08-14 10:40:46
请提供与表单和筛选/验证相关的完整代码 - 很可能您不验证您的数据,因此您不会收到任何错误或值;) – Sam 2012-08-14 11:55:53