【发布时间】:2012-01-21 22:19:20
【问题描述】:
我已经看到其他线程和错误报告与 Zend_Element 的 belongsTo 属性有关,但没有与我正在经历的事情直接相关..
这是我的(简化的)Zend_Form:
$form = new Zend_Form();
$form->addElement('text', 'fname', array('belongsTo' => 'user'));
$form->addElement('text', 'sname', array('belongsTo' => 'user'));
这很好,元素呈现如下:
<input type="text" name="user[fname]" />
<input type="text" name="user[sname]" />
...这正是我想要的。
但是,当提交表单时,只有调用时才能访问元素值
$form->getValue('fname') or $form->getValue('sname')
不,如果你打电话...
$form->getValue('user');
当您调用 $form->getValues('user') 时,我期望看到的是一个值数组。 如果您调用,值数组是清晰可见的
$form->getValues();
如果这是预期的行为,那么将它们放入数组有什么意义?因为“user[fname]”和“client[fname]”之间没有区别——事实上,添加另一个名为“fname”的元素,即使它属于另一个项目,也会覆盖之前的。
我尝试添加一个子表单,它确实会产生我想要的结果,但是这样所有子表单元素都会一起呈现,我真正想要的是在随机位置放置“数组”元素,就像这样...
<input type="text" name="user[fname]" />
<input type="text" name="some-other-field" />
<input type="text" name="some-other-field2" />
<input type="text" name="user[sname]" />
<input type="text" name="another-field-too" />
【问题讨论】: