【问题标题】:Zend Framework: Setting Default Decorators for form elements through Zend_Config_IniZend Framework:通过 Zend_Config_Ini 为表单元素设置默认装饰器
【发布时间】:2011-12-28 18:06:24
【问题描述】:

我的 forms.ini 文件中有以下代码,但它不起作用(呈现的表单仍在使用默认的 DtDd 装饰器)。

incident.elements.ticket_number.type = "text"
incident.elements.ticket_number.options.label = "Ticket Number"
incident.elements.ticket_number.options.required = true
incident.elements.ticket_number.decorators.elements.decorator = "ViewHelper"
incident.elements.ticket_number.decorators.list_item.decorator = "HtmlTag"
incident.elements.ticket_number.decorators.list_item.options.tag = "li"
incident.elements.ticket_number.decorators.label.decorator = "Label"

显示输出:

<dt id="ticket_number-label">
    <label for="ticket_number" class="required">Ticket Number</label>
</dt>
<dd id="ticket_number-element">
    <input type="text" name="ticket_number" id="ticket_number" value="">
</dd>

但我希望它显示:

<li>
    <label for=...>Ticket Number</label>
    <input type="text" name="ticket_number" id="ticket_number" value="">
</li>

我在这里做错了什么?

【问题讨论】:

  • 还要注意:Zend_Form 装饰器设置正常工作以生成
      {elements}
    ,它只是元素'不工作

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


【解决方案1】:

我相信元素的装饰器也需要添加为options

看看以下是否适合你:

incident.elements.ticket_number.type = "text"
incident.elements.ticket_number.options.label = "Ticket Number"
incident.elements.ticket_number.options.required = true
incident.elements.ticket_number.options.decorators.viewhelper.decorator = "ViewHelper"
incident.elements.ticket_number.options.decorators.label.decorator = "Label"
incident.elements.ticket_number.options.decorators.errors.decorator = "Errors"
incident.elements.ticket_number.options.decorators.description.decorator = "Description"
incident.elements.ticket_number.options.decorators.htmltag.decorator = "HtmlTag"
incident.elements.ticket_number.options.decorators.htmltag.options.tag = "li"

请注意,我还稍微更改了装饰器的顺序,以便 &lt;label&gt; 标记也将被包裹在 &lt;li&gt; 标记中。如果标签在 HtmlTag 之后,我发现它会在输入之前添加,但没有包裹在 &lt;li&gt;

您还必须为每个表单元素指定装饰器,否则它们将使用默认的表单装饰器。您可以将上述规范设置为您的默认装饰器,但是您还需要特殊的装饰器用于按钮/提交和文件输入。

【讨论】:

  • 宾果游戏!这正是我想要完成的!我整个早上都在谷歌搜索答案!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多