我过去曾经像这样向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无法知道我 尝试为每个条目创建一个新数组。
答案 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]']);