0

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

请注意,复选框是使用创建的,$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'),
 ));
4

2 回答 2

2

默认是添加标签,但您可以通过修改装饰器的 'placement' 选项来更改它:

$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'
            )
         ),
 ));
于 2013-01-31T16:37:03.857 回答
0

这是渲染表单元素标签的代码。

$this->form->name->renderLabel() ;

于 2013-02-13T08:38:33.287 回答