我嘗試驗證的形式,但我不能得到錯誤消息。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