【问题标题】:How does one apply a class to a Zend Framework decorator on error?错误时如何将类应用到 Zend Framework 装饰器?
【发布时间】:2010-10-29 14:14:14
【问题描述】:

现在,我将 Zend 表单元素包装在列表项中。表单正在验证或纠正错误。但我想在验证失败时将一个类应用于违规元素的列表项(但 only 应用于列表项违规元素)。示例:

此字段有有效输入

<li>
    <input type="text" name="address2" id="address2" value="" size="25">
</li>

但是这个没有

<li class="error">
    <input type="text" name="address2" id="address2" value="" size="25">
</li>

我能看到的唯一方法是扩展 Zend_Form_Element,覆盖 isValid(),然后扩展我的表单所需的所有从 Zend_Form_Element 派生的类。

一定有更好的方法。

对吗?

我错过了什么?

谢谢

【问题讨论】:

    标签: php zend-framework zend-form zend-form-element zend-decorators


    【解决方案1】:

    我认为你最好根据表单元素的状态修改 HtmlTag 装饰器。

    $tag = $element->getDecorator('HtmlTag');
    $tag->setOption('class', 'error');
    

    验证时可能有许多不同的地方可以调用它。您可以在视图中执行此操作,或者在构建表单时检测每个字段是否存在错误。

    您可能还想考虑创建自己的装饰器。

    herehere 这些帖子很好地涵盖了 Zend_Form 装饰器过于复杂的世界。

    【讨论】:

    • 谢谢。最终按照您的建议进行操作:在表格中,检查$this-&gt;form-&gt;getElement('foobar')-&gt;getErrors()
    猜你喜欢
    • 2011-07-22
    • 2011-01-20
    • 2011-04-22
    • 1970-01-01
    • 2011-06-27
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    相关资源
    最近更新 更多