没有索引的Zend_Form数组表示法

min*_*gos 6 arrays zend-framework zend-form

我想创建一个表单,允许用户使用数组表示法输入任意数量的值,每个值都在一个单独的文本字段中.预期HTML输出的示例是:

<dd id="dupa-element">
    <input type="text" name="dupa[]" value="">
    <input type="text" name="dupa[]" value="">
</dd>
Run Code Online (Sandbox Code Playgroud)

但是,我似乎找不到在单个元素中引入多个输入元素的方法,使用不带索引的数组表示法.

目前,我这样做:

$elt1 = new Zend_Form_Element_Text('1');
$elt1->setOptions(array('belongsTo' => 'dupa'));

$elt2 = new Zend_Form_Element_Textarea('2');
$elt2->setOptions(array('belongsTo' => 'dupa'));
Run Code Online (Sandbox Code Playgroud)

虽然这有效,Zend_Form将这些视为独立元素(可以有不同的验证器和过滤器集 - 这很酷),结果HTML就是这样的:

<dd id="dupa-1-element">
    <input type="text" name="dupa[1]" id="dupa-1" value="">
</dd>
<dd id="dupa-2-element">
    <input type="text" name="dupa[2]" id="dupa-2" value="">
</dd>
Run Code Online (Sandbox Code Playgroud)

是否有(最好是简单的)方法来实现我之后的无索引数组符号?

Tom*_*far 3

我会遵循MWOP 关于创建复合元素的教程。更多的工作,但比 akond 的解决方案更少的尝试和错误。对我来说基本想法是扩展Zend_Form_Element_Multi(你想要的是 Zend_Form_Element_Multiselect/MultiCheckbox 的工作原理)。