2010-09-22 51 views
1

因此,我創建了自己的自定義窗體元素,它具有自定義視圖助手。現在我想能夠在這個表單元素上設置特定的參數/變量,並且能夠在元素的視圖助手中訪問它們。我怎樣才能做到這一點?Zend Framework:如何將變量傳遞給自定義窗體元素的視圖助手

這裏就是我所說的例子:

添加元素的形式:

$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'; 
    } 
} 

回答

5

T這裏是視圖助手的第四個可選參數,它可能會爲你做出訣竅。

如果你定義視圖助手這樣的:

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; 
} 
} 

你會發現,這些選項將被傳入查看幫手,可以使用。

此代碼是從內存中請原諒任何錯誤,但這種方法絕對適用於我。

+0

你的記憶是否正確。 =] – Andrew 2010-09-28 18:11:06

相關問題