1

在我的模型中

$form = new \Zend_Form();
$form->addElement('text', 'name', array(
        'validators'    => array(
            array('NotEmpty', true),
            array("stringLength", true, array(1,40))
        ),
        'required'      => true,
        'label'         => "Name",
    ));
return $form;

在我的控制器中,调用了上面的模型函数

if($form->isValid($_POST)) {
  ....
} else {
$form = Product::getForm();
print_r($form->getErrors());
print_r($form->getErrorMessages());
print_r($form->getMessages());
}

我正在使用 Zend 框架。

这里在表单的name字段中,超过40个字符的字符串需要显示错误信息。

我尝试使用getErrors()and获取错误getErrorMessages()。但是这些功能都没有给我错误。它在打印这些函数时返回一个空数组。

请帮我解决这个问题...

4

2 回答 2

3

为什么给你打这个电话:

$form = Product::getForm();

所以你用它的错误信息覆盖了旧的 $form 变量。试试没有这些线。

于 2012-08-07T10:35:57.713 回答
2

isValid()在您调用表单之前,错误消息不会出现,就像这样

$form = Product::getForm();

if(!$form->isValid($_POST))
{
    print_r($form->getErrors());
    print_r($form->getErrorMessages());
    print_r($form->getMessages());        
}
于 2012-08-07T08:33:35.463 回答