CakePHP保存了三个模型的关系关联

lin*_*ndy 8 cakephp save

我有以下输出,我需要在数据库中插入:

Array
(
[Test] => Array
    (
    )

[Question] => Array
    (
        [0] => Array
            (
                [category_id] => 3
                [answer_style_id] => 2
                [Answer] => Array
                    (
                        [0] => Array
                            (
                                [capital_category_id] => 14
                                [correct] => 1
                            )

                       ...
         ...
Run Code Online (Sandbox Code Playgroud)

简而言之,每个测试都有很多问题,每个问题都有很多答案,每个相关模型都有一个需要由Cake设置的外键(每个问题都有一个test_id,每个答案都有一个question_id).

问题是,当我$this->Test->saveAll($data);,只有测试和问题得到保存,而不是答案.

如何保存所有数据,Cake自动为每个关联模型设置外键?

谢谢!

Hea*_*ota 5

我不确定,但我认为保存第三级关系是不可能的.

来自Cakephp:

使用saveAll()保存相关数据仅适用于直接关联的模型.

你必须检索三级数据并将它们与它们区分开来.


小智 4

是的,从 CakePHP 2.1 开始,您可以通过这种方式保存深度模型树

$this->SomeModel->saveAll($data, array('deep' => true));
Run Code Online (Sandbox Code Playgroud)

参考此处> http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#model-saveall-model-save Associated-model-validate Associates