我有一个名为TestController的控制器,它扩展了一些Zend_Controller_Action。现在我想在TestForms中创建一个TestController实例(一个Zend_Form)。我想动态填充Zend_Form_Element_Select。 请建议我如何做到这一点。提前完成。
答案 0 :(得分:1)
您在何处实例化表单 - 是否在控制器中?不应让表单调用控制器上的动作来动态获取值,而应该在实例化后在表单上设置值。
快速而肮脏的方法是获取控制器中的值并通过以下方式将其分配给元素:
$values = $db->query('query');
$element = $form->getElement('dynamicSelect');
$element->setValue($values);
当然,对控制器中的表进行数据库查询并不是最佳实践...根据philistyne的建议,我使用表单构建器类从我的模型动态构建表单。我有每个模型的映射器,我将映射器传递给表单构建器类,以便它可以动态填充我的选择元素。
答案 1 :(得分:0)
不建议尝试(将控制器传递到表单或从一个表单中实例化):