public function init()
{
$txt = $this->createElement('text', '0')
->setBelongsTo('txt');
$this->addElement($txt);
$fields = $this->createElement('text', '0')
->setBelongsTo('fields');
$this->addElement($fields);
}
但在这种情况下,不会显示其中一个字段。如何使两个字段的数组从0开始。
我可以保留txt []和fields [],但是当我this->populate($_POST);
时它不起作用。
答案 0 :(得分:1)
一般来说有些不对劲。传递给元素的第二个参数必须是其名称,该名称必须是唯一的(表单字段名称)。 setBelongsTo
调用无效,因为您的元素没有相应的名称。你正在做的是创建一个名为0
的元素,然后用另一个元素覆盖它,这是显示的元素。如果您在浏览器中查看源代码,您会看到这一点。如果您正在使用setIsArray
,那么您应该使两个元素都属于同一个数组。
我不知道你想要实现什么,但看起来应该更像这样:
public function init()
{
$txt = $this->createElement('text', 'mytext')
->setBelongsTo('myarray');
$this->addElement($txt);
$fields = $this->createElement('text', 'myothertext')
->setBelongsTo('myarray');
$this->addElement($fields);
}