如何在元素右侧渲染标签?

时间:2013-01-31 15:27:06

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

我正在为现有表单添加同意复选框。我无法在复选框的右侧呈现标签。我做错了什么?

请注意,复选框是使用$this->addElement(创建的,因为表单的其余部分是以这种方式创建的。

我提前感谢你。

$this->addElement('checkbox', 'isUserConsent', array(
        'options'   => array(array('placement' => 'APPEND')),
        'label' => 'Plz activate',
        'validators'    => array(
            array('InArray', false, array(
                'hay' => array(1),
                'messages' => 'Please check the consent box'),
           )
        ),
        'decorators'    => array('ViewHelper','Errors','Label'),
 ));

2 个答案:

答案 0 :(得分:2)

默认是添加标签,但您可以通过修改装饰器的“放置”选项来更改此标签:

$this->getElement('isUserConsent')->getDecorator('label')->setOption('placement', 'append');

编辑:我从不将此语法用于装饰器,但它应该是这样的:

$this->addElement('checkbox', 'isUserConsent', array(
        'options'   => array(array('placement' => 'APPEND')),
        'label' => 'Plz activate',
        'validators'    => array(
            array('InArray', false, array(
                'hay' => array(1),
                'messages' => 'Please check the consent box'),
           )
        ),
        'decorators'    => array(
            'ViewHelper',
            'Errors',
            'Label' => array(
                'placement' => 'append'
            )
         ),
 ));

答案 1 :(得分:0)

这是呈现表单元素标签的代码。

$ this-> form-> name-> render Label();