我有一个db表,并且在第一个和第二个中定义了链接表“site”,可以添加一个从一个到多个不同的值,这些值指向“站点”。用户可以打开包含链接数据的表单中的“站点”字段,然后在字段中显示,以便用户可以编辑值。
e.g。 “Site One”有一个相关领域。
“Site Two”有三个相关领域。
“Site Three”有两个相关领域。 等
如果我正在动摇它,我只会读取数据并创建额外的字段,但我正在使用Zend_Form构建它,它似乎想要提前知道字段的数量。我在models目录中使用了一个模型,脚本目录中有一个_form_xxx.phtml(部分?)。
我对Zend很新,并且感觉我的方式有点因此在Zend_Form中有一种方法这样做,因为我似乎不得不重写php和phtml吗?
子表单Zend_Form_SubForm是一种方法吗?
由于Zend很灵活,我假设在最坏的情况下,我可以用普通的方式编写组件,但如果可能的话,我想在框架中使用这些工具。
答案 0 :(得分:0)
是什么让你认为Zend_Form应该是静态的?您可以根据需要在运行时动态创建表单内的字段。只需将动态表单元素添加到表单类的构造函数中的逻辑(扩展Zend_Form)。
即
class YourSplendidForm extends Zend_Form
{
public function __construct($options = null, $yourParams)
{
parent::__construct($options);
$this->setName('your_form_name');
$this->setAction('/your/form/action/');
// Add your fields here using addElement - or create a subform and add fields to that one and use addSubForm to add the subform
}
}
然后只需将表单实例传递给您的视图(来自控制器)并根据需要进行处理(可以通过简单的<?php echo $this->form; ?>
或自定义渲染进行处理。