你能在 Zend 子表单中添加错误装饰器吗?

Posted

技术标签:

【中文标题】你能在 Zend 子表单中添加错误装饰器吗?【英文标题】:Can you add an error decorator to a Zend subform? 【发布时间】:2010-11-02 02:44:53 【问题描述】:

我有一个自定义验证器,它检查子表单中的所有值,以确保它们相互关联。如果此验证器失败,我希望在子表单顶部有一个错误装饰器来显示错误消息。这可能吗?

我已经像这样设置了装饰器:

protected $_decorators = array( 
    array(
        'decorator' => 'FormElements',
        'options' => array()
    ),
    array(
        'decorator' => 'htmlTag', 
        'options' => array(
            'tag' => 'ul',
            'class' => 'test'
        )
    ),  
);

看来我应该可以添加

array(
    'decorator' => 'Errors', 
    'options' => array(
        'tag' => 'ul',
        'class' => 'errors',
        'placement' => 'prepend',
    )
),

但这会导致 Zend 失败并出现错误“htmlspecialchars() 期望参数 1 是字符串,给定数组”。那我做错了什么?谢谢!

【问题讨论】:

【参考方案1】:

我相信您的代码没有任何问题,只是 ZF 没有正确处理 Zend_Form_SubForm 中的 Errors 装饰器。我希望他们能尽快解决这个问题。

【讨论】:

以上是关于你能在 Zend 子表单中添加错误装饰器吗?的主要内容,如果未能解决你的问题,请参考以下文章

自定义表单装饰器中的 Zend 框架类

Zend 表单装饰问题

在 Zend Framework 中,如何使用装饰器将表单元素包装在标签中?

Zend Framework 表单、装饰器和验证:我应该回到纯 HTML 吗?

Zend Form 装饰器的麻烦

如何在类中定义装饰器?