我有一个模型和与另一个模型的hasMany
关系。
单个字段数据保存到主模型中,下拉选择输入的数据应保存到关联模型中。
当我尝试手动创建一个数组并使用saveAll
时,一切都很好,数据也会保存下来。但是select输入的问题在于它的名称内部。正确的格式是:
array(
'Article' => array('title' => 'My first article'),
'Comment' => array(
array('body' => 'Comment 1', 'user_id' => 1),
array('body' => 'Comment 2', 'user_id' => 12),
array('body' => 'Comment 3', 'user_id' => 40),
),
)
在创建选择列表和传递选项数组时,我们只能设置一个标签名称,如Comment.body
,但我们必须使用Comment.0.body
、Comment.1.body
等。
因此,对于Cake成功使用saveAll
来说,后期数据的格式是不可读的。
有人遇到过这个问题吗?生成具有正确名称和值的多选输入?
通过切换到$hasAndBelongsToMany
关系解决了此问题。
您是如何生成表单的?正确的格式是你说的第二个Comment.0.body
。为此,你需要这样的东西:
echo $this->Form->input('Comment.0.body');
echo $this->Form->input('Comment.1.body');
将生成:
<input type='text' id='Comment0Body' name="data[Comment][0][body]" />
<input type='text' id='Comment1Body' name="data[Comment][1][body]" />