如何解决在Zend Framework中使用Zend_Form的表单上的可变字段数
| 我有一个数据库表和一个链接表\“ site \”在第一个中定义,在第二个中,可以添加从一个到多个变化的多个值,这些值指向\“ site \”。用户可以使用带有链接数据的表单打开\“ site \”字段,然后在字段中显示,以便用户可以编辑值。 例如“网站一”具有一个相关字段。 “站点二”具有三个相关字段。 “站点三”具有两个相关的字段。 等等。 如果我要手动启动它,我只会读取数据并创建额外的字段,但是我正在使用Zend_Form构建它,它似乎想提前知道字段的数量。我在models目录中使用了一个模型,在scripts目录中使用了_form_xxx.phtml(部分?)。 我对Zend并不熟悉,所以有点感觉,所以Zend_Form是否有办法做到这一点,否则我似乎不得不重写php和phtml了? 子表单Zend_Form_SubForm是可行的吗? 由于Zend是灵活的,我认为在最坏的情况下我可以用普通的香草方式编写组件,但如果可能的话,我想在框架中使用这些工具。解决方法
是什么让您认为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
}
}
然后只需将表单实例(从控制器)传递到视图并根据需要进行处理(通过简单的“ 1”或您认为合适的自定义渲染)即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。