как установить один декоратор для более чем одного элемента в форме Zend - PullRequest
1 голос
/ 02 мая 2011

в моей форме Zend я устанавливаю декараторы для каждого элемента, вместо этого я могу установить один декоратор, который может применяться ко всем.

в настоящее время ..

    $code = new Zend_Form_Element_Text("mealplancode");
    $code->setLabel("Code :");
    $code->setDecorators(
                         array(
                              array('ViewHelper',
                                        array('helper' => 'formText')
                            ),
                            array('HtmlTag',
                                        array('tag' => 'div', 'class' => '')
                            ),
                            array('Label',
                                        array('class' => 'label')
                            ),
                         )
                      );

    $name = new Zend_Form_Element_Text("mealplanname");
    $name->setLabel("Name :");
    $name->setDecorators(
                         array(
                              array('ViewHelper',
                                        array('helper' => 'formText')
                            ),
                            array('HtmlTag',
                                        array('tag' => 'div', 'class' => '')
                            ),
                            array('Label',
                                        array('class' => 'label')
                            ),
                         )
                      );

я хочу установить для декораторов как $ name, так и $ code в одном setDecorator () могу ли я сделать это

1 Ответ

2 голосов
/ 02 мая 2011

В вашем классе формы определите поле декоратора, чтобы иметь возможность применить его к любому элементу формы, например:

public $elementDecorators = array(
        'ViewHelper',
            array(array('data'=>'HtmlTag'), array('tag' => 'td')),
            array('Label', array('tag' => 'td')),
            array(array('row'=>'HtmlTag'),array('tag'=>'tr'))); 

И, как и в вашем коде, вы можете установить декоратор:

$formElement->setDecorators($this->elementDecorators);
...