Zend表单字段名称为数组

时间:2011-11-22 14:00:15

标签: php forms zend-framework

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);时它不起作用。

1 个答案:

答案 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); 
}