2010-10-05 62 views
4

我有一個Zend形式實例化通變到Zend形式

$form = Form_Example(); 

現在我想從我的控制器的ID傳遞給我的形式。

所以我這樣做:

$form = Form_Example(array('id' => $id)); 

我試圖通過調用它的形式內部:

$this->id 

但它不存在。

任何人都知道如何將這個id放入表單中?

感謝

+0

我認爲這個鏈接幫助HTTP訪問表單裏面的id屬性://www.carlowens .me/2010/04 /傳遞參數從控制器到一個zend表單/ – 2010-10-05 11:28:27

回答

12

請確保您有對元素的setter,你的情況public function setId($id)。 Zend_Form構造函數檢查屬性是否存在setter方法,如果它存在,則調用它,否則設置該表單的屬性,請參閱setAttrib($key, $value)

最終的結果會是這樣的

class Application_Form_YourForm extends Zend_Form { 

    /** 
    * Id 
    * @var <type> 
    */ 
    protected $_id = null; 

    /** 
    * Setter for ID 
    * @param <type> $id 
    */ 
    public function setId($id){ 
     $this->_id = $id; 
    } 

    // Rest of your code... 
} 
+0

簡單的解決方案,看似複雜的問題。謝謝! – 2014-04-14 15:06:11

3

你應該能夠

$this->_attribs['id']