在ViewScript中显示Zend_Form表单错误

Jer*_*cks 5 forms zend-framework

我正在尝试使用ViewScript在表单之前显示所有表单错误.以下是我目前在ViewScript中尝试使用的代码:

<div class="errors">
<?php echo $this->formErrors($this->element->getMessages()); ?>
</div>
Run Code Online (Sandbox Code Playgroud)

这个电话给我一个错误信息:

警告:htmlspecialchars()期望参数1为字符串,给定数组

我已经看到这个相同的代码建议其他地方,但它不适合我.如果我打印出$ this-> element-> getMessages(),我确实看到如下错误消息:

数组([myField] =>数组([isEmpty] =>值是必需的,不能为空))

有任何想法吗?

Mar*_*ark 7

getMessages()返回一个表单元素名称数组作为键,每个键都包含该元素的错误数组.所以基本上不是处理formErrors视图助手:

Array ( [isEmpty] => Value is required and can't be empty )
Run Code Online (Sandbox Code Playgroud)

你正在处理它:

Array ( [myField] => Array ( [isEmpty] => Value is required and can't be empty ) )
Run Code Online (Sandbox Code Playgroud)

你可能想做这样的事情:

$arrMessages = $this->myForm->getMessages();
foreach($arrMessages as $field => $arrErrors) {
    echo sprintf(
        '<ul><li>%s</li>%s</ul>',
        $this->myForm->getElement($field)->getLabel(),
        $this->formErrors($arrErrors)

    );
}
Run Code Online (Sandbox Code Playgroud)

  • 我最终做了类似的事情,但我更喜欢你的解决方案.奇怪的是,没有可用于像这样一起处理所有表单错误的函数,只能一次处理一个字段. (2认同)