saveAll不';t通过多选处理表单后,将相关数据保存在cakehp2.0中


saveAll doesn't save associated data in cakephp 2.0 after processing the form with multiple select

我有一个模型和与另一个模型的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.bodyComment.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]" />