使用Label装饰器</label>将类添加到Zend_Form中<label>周围的$标记中

时间:2010-05-08 18:02:38

标签: zend-framework label zend-form decorator

我正在尝试从Zend_Form中获取以下html

<div class="group wat-cf">
  <div class="left">
    <label class="label right">Username</label>
  </div>
  <div class="right">
    <input type="text" class="text_field">
  </div>
</div>

使用以下代码:

$username->setAttrib("class", "text_field")
         ->setDecorators(array(
                           'ViewHelper',
                               'Description',
                   'Errors',
                   array(array('data'=>'HtmlTag'), array('tag' => 'div', 'class' => 'right')),
                               array('Label', array('tag' => 'div', 'class' => 'label right')),
                               array(array('row'=>'HtmlTag'),array('tag'=>'div', 'class' => 'group wat-cf'))
            ));

我可以获得下一个片段

<div class="group wat-cf">
  <div id="username-label">
    <label for="username" class="label right required">Username:</label>
  </div>
  <div class="right">
    <input type="text" name="username" id="username" value="" class="text_field">
  </div>
</div>

所以除了一些额外的id和必需的课程,我不介意,我需要在div id =“username-label”上获得一个“左”的课程

现在将类添加到Label行,获取在元素上添加的类。我也没有在Label装饰器代码本身中看到和选择这样做。所以我需要一个自定义标签装饰器,还是有其他方式我缺少?

2 个答案:

答案 0 :(得分:2)

在较新版本的Zend中,您可以添加tagClass参数。 请参阅下面的“标签”数组

$username->setAttrib("class", "text_field")
     ->setDecorators(array(
               'ViewHelper',
               'Description',
               'Errors',
               array(array('data'=>'HtmlTag'),array('tag' => 'div', 'class' => 'right')),
               array('Label', array('tag' => 'div', 'tagClass' => 'left', 'class' => 'label right')),
               array(array('row'=>'HtmlTag'),array('tag'=>'div', 'class' => 'group wat-cf'))
        ));

答案 1 :(得分:0)

这是非常常见的问题。我想,在这种情况下,这个答案也可能有用:

Add some html to Zend Forms

同时查看Padraic's tutorial