Zend framework 如何从我的控制器获取信息到我的表单?
对于表单,我尝试添加一个selectbox,其中包含数据库中的项目列表 我的表单位于/application/forms/News/Edit.php中 在我的控制器中,我想获取我想在表单中使用的列表 如何将该列表从控制器添加到表单中 以下是我在Edit.php中的代码:Zend framework 如何从我的控制器获取信息到我的表单?,zend-framework,zend-form,Zend Framework,Zend Form,对于表单,我尝试添加一个selectbox,其中包含数据库中的项目列表 我的表单位于/application/forms/News/Edit.php中 在我的控制器中,我想获取我想在表单中使用的列表 如何将该列表从控制器添加到表单中 以下是我在Edit.php中的代码: $this->addElement( 'select', 'view_status', array( 'label' => 'View status', 'multi
$this->addElement(
'select',
'view_status',
array(
'label' => 'View status',
'multioptions' => array(
//THIS SHOULD BE FILLED WITH DYNAMIC CONTENT FROM MY CONTROLLER
)
)
);
在控制器的操作中,可以根据操作初始化所需的选项。在将表单发送到视图之前,应设置选项
$Form = new form_News_Edit();
$Form->getElement('view_status')
->setMultioptions($arrayOptions);
$this->view->assign('Form', $Form);
只需使用forms类的构造函数或_init函数来设置任何自定义值。 它会让你看起来像(在你的控制器中): 然后在你的表格课上:
public function __construct($myArrayOfValue){
}
yvoyer的解决方案也很好,但它去掉了表单的一些业务逻辑。您可以在表单构造函数的第一个参数中传递select的选项。初始化表单时,Zend_form会查找由选项名称后缀的set方法:
class App_Form_News_Edit extends Zend_Form
{
public function setViewStatusOptions($options)
{
$this->view_status->setMultioptions($options);
}
}
$form = new App_Form_News_Edit(array('viewStatusOptions' => array(..)));
无意中编辑了你的问题对不起!
$this->addElement(
'select',
'view_status',
array(
'label' => 'View status',
'multioptions' => $myArrayOfValue
)
);
class App_Form_News_Edit extends Zend_Form
{
public function setViewStatusOptions($options)
{
$this->view_status->setMultioptions($options);
}
}
$form = new App_Form_News_Edit(array('viewStatusOptions' => array(..)));