如何从数据数组填充表单

时间:2014-03-03 10:06:41

标签: php arrays cakephp fill formhelper

我有这种情况。在BiograpiesController中,经过查询后,我得到了这个数组:

    Array (
            [0] => Array (
                    [Biography] => Array (
                            [id] => 7
                            [biography] => AAA
                    )
            )
            [1] => Array (
                    [Biography] => Array (
                            [id] => 9
                            [biography] => BBBBB
                )
        )
    )

在视图中,我想为此数据创建一个表单。我用:

    echo $this->Form->create( 'Biography' ));
    echo $this->Form->input( '0.Biography.biography', array( 'label' => 'A' ));
    echo $this->Form->input( '1.Biography.biography', array( 'label' => 'B' ));
    echo $this->Form->end( );

第一个字段填充正确的数据,第二个字段为空。然后我尝试:

    echo $this->Form->input( 'A1', array( 'type' => 'textarea', 'rows' => '10', 'cols' => '40', 'value' => $this->request->data[0]['Biography']['biography'] ));
    echo $this->Form->input( 'B1', array( 'type' => 'textarea', 'rows' => '10', 'cols' => '40', 'value' => $this->request->data[1]['Biography']['biography'] ));

字段A1填充正确的数据,第二个字段为空。 为什么会这样? 如何使用控制器中的正确数据填写表单?

非常感谢

1 个答案:

答案 0 :(得分:2)

我对cakephp知之甚少,但根据文档它应该有效

echo $this->Form->create( 'Biography' ));
echo $this->Form->input( 'Biography.0.biography', array( 'label' => 'A' ));
echo $this->Form->input( 'Biography.1.biography', array( 'label' => 'B' ));
echo $this->Form->end( );

请注意第2行和第3行的更改

我已经提到以下链接 http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#field-naming-conventions