对于一个元素装饰我使用
$this->getElement('usr_name')->addDecorator('Label', array('class' => 'control-label'));
也许更快的解决方案来装饰ALL
表单labels
?
答案 0 :(得分:1)
您可以实现一个函数来将装饰器添加到表单的所有元素
如果$form
是表单对象。实现一个循环遍历$form
对象的输入元素并在每个元素上添加装饰器的函数
function addLabelDecorator($form)
{
$formElements = $form->getElements();
foreach($formElements as $element)
$element->addDecorator('Label', array('class' => 'control-label'));
return $form;
}
答案 1 :(得分:0)
将元素添加到表单后,使用setElementDecorators
为它们指定装饰器。
Exampe:
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