0

我有一个数据库表和一个链接表“站点”,在第一个和第二个中定义了许多从一个到多个变化的值,这些值可以添加回“站点”。用户可以在带有链接数据的表单中打开“站点”字段,然后显示在字段中,以便用户可以编辑值。

例如,“Site One”有一个相关字段。

“站点二”具有三个相关字段。

“站点三”有两个相关领域。等等。

如果我手动启动它,我只会读取数据并创建额外的字段,但我正在使用 Zend_Form 构建它,它似乎想提前知道字段的数量。我在模型目录中使用模型,脚本目录中有 _form_xxx.phtml(部分?)。

我对 Zend 很陌生并且有点感觉,所以 Zend_Form 有没有办法这样做,否则我似乎不得不重写 php 和 phtml?

子表单 Zend_Form_SubForm 是一种可行的方法吗?

由于 Zend 很灵活,我假设在最坏的情况下我可以用普通的方式编写组件,但如果可能的话,我想使用框架中的工具。

4

1 回答 1

0

是什么让您认为 Zend_Form 应该是静态的?您可以在运行时根据需要在表单内动态创建字段。只需将添加动态表单元素的逻辑放在表单类(扩展 Zend_Form)的构造函数中。

IE。

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; ?>您认为合适的简单或自定义渲染。

于 2011-05-24T14:44:47.053 回答