Zend Framework: как передать переменные в помощник вида пользовательского элемента формы - PullRequest
1 голос
/ 22 сентября 2010

Итак, я создал собственный элемент формы, у которого есть специальный помощник вида. Теперь я хочу установить некоторые параметры / переменные для этого элемента формы и получить доступ к ним в помощнике вида моего элемента. Как я могу это сделать?

Вот пример того, о чем я говорю:

добавление элемента в форму:

$element = new My_Form_Element_Picker('elementname');
$element->setFoobar('hello');
// or 
$form->addElement('Picker', 'elementname', array('foobar' => 'hello'));

элемент формы:

class My_Form_Element_Picker extends Zend_Form_Element_Xhtml
{
    public $helper = 'pickerElement';
}

помощник вида:

class My_View_Helper_PickerElement extends Zend_View_Helper_FormElement
{
    public function pickerElement($name, $value = null, $attribs = null)
    {
        //now I want to check if the 'foobar' option was set, otherwise use a default value
        $foobar = 'default';
    }
}

1 Ответ

5 голосов
/ 23 сентября 2010

Существует четвертый необязательный аргумент для помощника вида, который может помочь вам.

если вы определите свой помощник вида следующим образом:

public function pickerElement( $name, $value=null, $attribs=null, $options=null ) { }

А затем внутри вашего фактического элемента формы вы определяете его так:

class My_Form_Element_Picker extends Zend_Form_Element_Xhtml {

 public $helper = 'pickerElement';
 public $options = array();

 public function setFoobar( $foobar ) {
  $this->options['foobar'] = $foobar;
 }
}

Вы обнаружите, что параметры передаются в помощник вида и могут использоваться.

Этот код из памяти, поэтому, пожалуйста, простите все ошибки, этот метод определенно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...