同时保存多个HABTM模型

时间:2011-09-18 18:08:26

标签: php arrays cakephp has-and-belongs-to-many

由于我无法找到关于同时保存两个模型的 HABTM关系的大量信息。

我有一个订阅表格,可以在线订阅孩子。父母可以同时输入多个孩子和多个父母。所以JS可以添加更多文本框并使它们有效(Model.number.field

  1. 我想验证子项和管理器(不能使用父模型名称,因此父项=在这种情况下是管理器):

    if($this->Child->saveAll($this->data['Child'], array('validate' => 'only'))
        && ($this->Manager->saveAll($this->data['Manager'], array('validate' => 'only')))
    )
    {
        debug('form is valid!');
    }
    

    此代码仅在只有1个子节点和1个管理器(=父节点)时有效。

  2. 如何同时保存这两个具有HABTM关系的模型?

  3. 这是值$this->data的调试:http://pastebin.com/m6dtBzga

1 个答案:

答案 0 :(得分:1)

来自文档:

为了保存单个模型的多个记录,$ data需要是一个数字索引的记录数组,如下所示:

Array
(
    [Article] => Array(
            [0] => Array
                (
                            [title] => title 1
                        )
            [1] => Array
                (
                            [title] => title 2
                        )
                )
)

保存上述$ data数组的命令如下所示:

$this->Article->saveAll($data);

http://book.cakephp.org/view/1031/Saving-Your-Data