同时保存多个HABTM模型


Saving multiple HABTM models at the same time

由于我找不到关于同时保存具有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关系的这2个模型?

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

来自文档:

为了保存单个模型的多条记录,$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