Zend Form Decorator - 为输入Label的标记添加选项

时间:2011-03-16 22:57:39

标签: zend-form decorator

我正在尝试使用Zend_Form Decorator实现以下html输出:

<tr>
  <td id="from-label" **class="labelcell"**><label for="from" class="required">From</label></td> 
  <td><input type="text" name="from" id="from" value="" class="text"></td>
</tr> 

我正在尝试在Label的封闭标记上添加class属性,例如内联样式属性。在上面的示例中,我想添加class="labelcell

装饰者陈述如下:

    $from = $this->createElement('text', 'from', array(
                            'validators'=> array(array('regex', false, '/^[0-9]+/i')),
                            'required'=> true,
                            'label'=> 'From'
                        )
                    );
        $from->setAttrib('class', 'text');
        $from->setDecorators(
                array(
                'ViewHelper',
                'Description',
                'Errors',
                array(array('data'=>'HtmlTag'), array('tag' => 'td')),
                array('Label', array('tag' => 'td')),
                array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
                ));

有没有办法实现我想要的,而不扩展Zend_Form_Decorator_Label以将附加选项传递给封闭标记?

2 个答案:

答案 0 :(得分:2)

$from->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('data'=>'HtmlTag'), array(
    'tag' => 'td'
)),
array('Label', array(
    'tag'   => 'td',
    'class' => 'labelcell'
    'tagClass' => 'YourClassNameHere' <- THIS IS WHAT WILL ADD TO LABEL WRAPPER

)),
array(array('row' => 'HtmlTag'), array(
    'tag' => 'tr'
)),

));

答案 1 :(得分:1)

有一个选项 class 。您也应该能够在配置数组中定义它。试试这个:

$from->setDecorators(array(
    'ViewHelper',
    'Description',
    'Errors',
    array(array('data'=>'HtmlTag'), array(
        'tag' => 'td'
    )),
    array('Label', array(
        'tag'   => 'td',
        'class' => 'labelcell'
    )),
    array(array('row' => 'HtmlTag'), array(
        'tag' => 'tr'
    )),
));