1

对于我使用的一种元素装饰

$this->getElement('usr_name')->addDecorator('Label', array('class' => 'control-label'));

ALL也许是装饰形式的更快解决方案labels

4

2 回答 2

1

您可以实现一个函数来将装饰器添加到表单的所有元素

if$form是表单对象。实现一个函数,它将遍历$form对象的输入元素并在每个元素上添加装饰器

function addLabelDecorator($form)
{
    $formElements = $form->getElements();
    foreach($formElements as $element)
        $element->addDecorator('Label', array('class' => 'control-label'));

    return $form;   
}
于 2013-07-25T12:06:13.173 回答
0

将元素添加到表单后,可以setElementDecorators为它们指定装饰器。

示例:

class Form_Example extends Zend_Form
{

    public function init()
    {
        /* creating form elements*/



        // specify all element decorators    
        $this->setElementDecorators(array(
            'ViewHelper',
            array('Label', array('class' => 'control-label')),
        ));

        // specify all form decorators
        $this->setDecorators(array(
            'FormElements',
            'Form'
        ));
    }
}

但是,如果您正在尝试Zend_Form与 Twitter Bootstrap 集成,那么已经实现了类似的解决方案:EasyBib_Form_Decorator

于 2013-07-24T23:22:37.873 回答