将PHP数组传递给CakePHP' s形式帮助器

时间:2015-09-17 04:00:39

标签: cakephp cakephp-2.0 form-helpers

我过去曾经像这样向CakePHP发送了数组:

$this->Form->input("Req.{$i}");

我手动将{$i}放在循环中从代码本身派生出来。理想情况下,我希望输入类似Req.{}的内容来生成下一个键索引,但似乎只是手动将它放入其中才能生效。多年以后我需要像

这样的东西

$this->Form->input("Req.{$i}.list.{}");

我想避免生成{$i2}。基本上,我在询问如何在POST上正确地将多维数组发送到$this->request->data,而不必指定索引名称,就像我们在传统PHP中可能有<input name='whatever[]'>一样。我发布jQuery AJAX,如果重要的话。

更新 根据drmonkeyninja的回答,我收到了

[list] => Array(
                            [0] => Array
                                (
                                    [name] => 
                                )

                            [1] => Array
                                (
                                    [value] => 
                                )

                            [2] => Array
                                (
                                    [req] => 
                                )
                 )

似乎需要我制作一个$ i2,因为PHP / HTML无法知道我 尝试为每个条目创建一个新数组。

1 个答案:

答案 0 :(得分:1)

通常在CakePHP中使用.定义分隔数组索引的数组路径: -

$this->Form->input('Model.0.value'); // name="data[Model][0][value]"

如果您不想指定数字索引,可以使用..来表示空索引: -

$this->Form->input('Model..value'); // name="data[Model][][value]"

<强>更新

如果无法以您需要的方式使用CakePHP数组路径语法,您可以随时在input选项中手动设置输入名称: -

$this->Form->input('Model..value', ['name' => 'data[Model][][value]']);