在使用多个select处理表单后,saveAll不会保存cakephp 2.0中的关联数据

时间:2012-04-03 17:31:05

标签: php cakephp cakephp-2.0

我与另一个模型有一个模型和hasMany关系。

单个字段数据保存到主模型,下拉选择输入的数据应保存到关联模型。

当我尝试手动创建数组并使用saveAll时,一切正常并且数据已保存。但是选择输入的问题在其名称中。正确的格式是:

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),
    ),
)

创建选择列表并传递options数组时,我们只能将标记名称设置为Comment.body,但我们必须使用Comment.0.bodyComment.1.body等。

因此,Cake无法读取帖子数据的格式以成功使用saveAll

是否有人遇到此问题 - 生成具有正确名称和值的多个选择输入?

2 个答案:

答案 0 :(得分:2)

通过切换为$hasAndBelongsToMany关系来解决问题。

答案 1 :(得分:0)

你是如何制作表格的?正确的格式是你说的第二个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]" />