3

默认情况下,我不想在验证失败时在输入元素下显示 Zend 验证器消息但我需要根据我的要求提供 Zend 验证消息。

有什么建议么?

4

3 回答 3

5

抱歉,您的回答不是您最初问题的答案!

您的标题要求提供一个通用解决方案,如何在整个应用程序中禁用验证消息,解决方案是:

<?php
namespace YourApp;

use Zend\Form\View\Helper\FormRow;

class Module
{
    public function getViewHelperConfig()
    {
        return array(
            'factories' => array(
                'formRow' => function($sm) {
                    $helper = new FormRow();
                    $helper->setRenderErrors(false);
                    return $helper;
                }
            ),
        );
    }
?>
于 2013-04-02T15:17:56.513 回答
5

我得到了解决方案。解决方案在这里。

我正在使用

<?php echo $this->formRow($form->get('username')); ?>

现在我已将其替换为

<?php echo $this->formElement($form->get('username')); ?>

为了根据我对视图的要求获取错误消息,我使用了

echo $this->formElementErrors($form->get('username')); // Errors must be capital letter

感谢所有回复。

于 2013-03-26T12:31:42.057 回答
4

第一:不要使用formCollection()-ViewHelper

第二:使用formRow()-ViewHelper 渲染表单并将第三个参数设置为 false。你可以在这里看到这个:Zend\Form\View\Helper\FormRow#157

echo $this->formRow($element, $labelPosition, $renderErrors);

$element应该是要呈现的表单元素,即:$this->form->get('elementName')

$labelPosition如果需要默认值,可以简单地设置为 null

$renderErrors是一个布尔值,指示是否应呈现错误

于 2013-03-26T12:15:37.633 回答