我知道這個問題已經回答了here。但這不適合我。 通過使用插件加載器生成的表單:如何將params從控制器傳遞給Zend_Form?
$formClass = Zend_Registry::get('formloader')->load('Payment');
$form = new $formClass(array('someval' => $my_arr));
Payment.php:
class Form_Payment extends Zend_Form
{
protected $_someval = array();
public function init()
{
$this->setAction('payment/save');
//....
$this->addElement('multiCheckbox', 'store_id', array('label' => 'Someval:', 'required' => true, 'multiOptions' => $this->getSomeval()))
}
public function setSomeval($someval) {
$this->_someval = $someval;
}
public function getSomeval() {
return $this->_someval;
}
}
,我可以看到load方法只返回類的名字,所以new $formClass();
等於new Form_Payment()
偏偏這個ISN不接受參數?
'Zend_Registry :: get('formloader')'這是一個自定義插件嗎?你也可以發佈該代碼嗎? –
你沒有通過任何params。你想傳遞給表單的是什麼? – Phil
@NandakumarV''Zend_Registry :: get('formloader')'加載Form_Payment @Phil我編輯了上面的代碼,所以現在應該更清楚了 – tecmec