【问题标题】:Zend_Form_decorator custom class to inputZend_Form_decorator 自定义类输入
【发布时间】:2014-01-05 11:00:26
【问题描述】:

目前我正在与 Zend 合作,我有一个小问题想要解决。

我有一个要添加到每个文本类型输入的类,但我不想设置该类属性,而是想从自定义表单装饰器中添加它,因为它必须位于每个文本输入和 textarea而且你知道有时一次又一次地做某事很烦人。

我对 Zend 还很陌生,所以我不知道应该从哪里开始...

以下是我的装饰器的代码,仅适用于文本元素:

'Zend_Form_Element_Text' => array(
    'ViewHelper',
    'Errors',
    array ('Description',  array('tag' => 'td','class' =>'iconset', 'escape'=>false )),
    array (array ('data' => 'HtmlTag'), array ('tag' => 'td', 'class' => 'element')),
    array ('Label', array ('tag' => 'td')),
    array (array ('row' => 'HtmlTag'), array ('tag' => 'tr'))
),

Zend 用这个生成表单的这一部分

<tr>
    <td><label>Labeltext</label></td>
    <td><input type="text" id="someid" name="somename" value="" /></td>
</tr>

我想锻炼使用这个表单装饰器创建的每个表单元素都有一个类,例如:“myclass”在这样的基础中

<tr>
    <td><label>Labeltext</label></td>
    <td><input type="text" id="someid" name="somename" value="" class="myclass" /></td>
</tr>

【问题讨论】:

    标签: php forms zend-framework zend-decorators


    【解决方案1】:

    我看到的问题是,您要更改的部分不是装饰器,而是视图本身。现在我可能对此一无所知,但我看到如何最容易解决这个问题的方法是子类化(制作从Zend_Form_Element_* 扩展的 PHP 类)你想要拥有这个 CSS 类的输入元素类型设置,并在初始化部分的某个地方设置这个 CSS 类。然后在需要的地方使用新的 PHP 类/元素。

    【讨论】:

    • 所以我应该一直走下去并添加这个类来创建所有这些表单元素? :S 这就是我想要避免的:/
    • 我对答案做了一些修改。显然我并没有让自己清楚什么类在哪里。很多课程:)
    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 2012-03-28
    • 2019-02-18
    • 2018-02-11
    • 2018-06-11
    • 2011-07-30
    • 2021-10-24
    • 2013-01-22
    相关资源
    最近更新 更多