【问题标题】:Zend Framework: help needed with Form DecoratorsZend Framework:表单装饰器需要帮助
【发布时间】:2012-07-26 09:42:45
【问题描述】:

我是 Zend 框架开发的新手。我对表单装饰器进行了一些研究,但我想要一些具体的东西。

这就是我想要的:

<table>
<tr>
    <td colspan="2">
        <ul class="errors">
            <li>error</li>
        </ul>
     </td>
</tr>
<tr>
   <td>Label :</td>
   <td>input field</td>
</tr>
<tr>
   <td></td>
   <td>Submit Button</td>
</tr>
</table>

我得到的是:

   $this->setElementDecorators(array(
        'ViewHelper',
        array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
        array('Label', array('tag' => 'td')),
        array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
    ));

    $submit->setDecorators(array('ViewHelper',
        array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
        array(array('emptyrow' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element', 'placement' => 'PREPEND')),
        array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
    ));

    $this->setDecorators(array(
        'FormElements',
        'Errors'
        array('HtmlTag', array('tag' => 'table')),
        'Form'
    ));

但它带有一个 htmlspecialchar 警告,并且 ul 为空。

有没有办法解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    验证错误与单个输入相关,而不是与表单相关,因此我相信您可能很难仅使用装饰器来使其工作。

    我会简单地在视图脚本中单独呈现单个表单元素以及验证错误。您需要自己准备错误以显示并完全摆脱装饰器,只使用 ViewHelper。然后你可以这样做:

    <form method="post">
      <table>
      <tr>
        <td colspan="2"><?php echo $this->errors; ?></td>
      </tr>
      <tr>
        <td><?php echo $this->form->foo->getLabel(); ?></td>
        <td><?php echo $this->form->foo; ?></dt>
      </tr>
      </table>
    </form>
    

    【讨论】:

      猜你喜欢
      • 2013-02-19
      • 2012-10-23
      • 1970-01-01
      • 2011-06-11
      • 2011-01-10
      • 1970-01-01
      • 2011-01-20
      • 2011-08-12
      • 1970-01-01
      相关资源
      最近更新 更多