2010-11-29 52 views
0

下面的代码:如何在Zend Framework中使用现有的装饰器?

$this->addElement('text', 'email', array(
    'label' => 'Your email address:', 
)); 

$this->addElement('submit', 'submit', array(
    'label' => 'Sign Guestbook', 
)); 

产生下面的HTML:

<form enctype="application/x-www-form-urlencoded" action="" method="post"> 
    <dl class="zend_form"> 
     <dt id="email-label"> 
      <label for="email" class="optional">Your email address:</label> 
     </dt> 
     <dd id="email-element"> 
      <input type="text" name="email" id="email" value="" /> 
     </dd> 

     <dt id="submit-label"> 
      &#160; 
     </dt> 
     <dd id="submit-element"> 
      <input type="submit" name="submit" id="submit" value="Sign Guestbook" /> 
     </dd> 
    </dl> 
</form> 

我知道,我可以写我自己的装饰,但我想知道,如何利用现有的装饰,营造以下HTML :

<form enctype="application/x-www-form-urlencoded" action="" method="post"> 
    <div> 
     <label for="email" class="optional">Your email address:</label> 
     <input type="text" name="email" id="email" value="" class="my_class" /> 
    </div> 

    <div> 
     <input type="submit" name="submit" id="submit" value="Sign Guestbook" class="my_class" /> 
    </div> 
</form> 

没有<dl/><dt/><dd/>,加入class属性。

例如,我知道,如何去除环境<dl/>标签:

$this->addDecorator('FormElements') 
    ->addDecorator('Form'); 

是可能其他变化编写自定义装饰?

回答

1

这(附加此阵为您的参数数组,现在仅由一个标签选项)应与你的电子邮件领域的帮助:

'class' => 'my_class', 
'decorators' => array(
    'ViewHelper', 
    'Errors', 
    'Label', 
    array('HtmlTag', array('tag' => 'div')) 
) 

而且同样没有Label - 提交。

+0

谢谢。似乎逻辑:) – prostynick 2010-11-29 13:52:35

相关问题