我有以下数据、控制器和模型,我需要将它们保存在一起。Foo
被保存然后Bar
,但deep
选项在保存时不起作用Baz
。
数据
array(
'Foo' => array(
'field1' => 'data',
'field2' => 'data'
),
'Bar' => array(
(int) 0 => array(
'field1' => 'data',
'field2' => 'data',
'Baz' => array(
'field1' => 'data'
)
),
(int) 1 => array(
'field1' => 'data',
'field2' => 'data',
'Baz' => array(
'field1' => 'data'
)
)
[...]
)
)
控制器
$this->Bar->Foo->saveAll($data, array('deep', true));
模型
Bar belongsTo Foo
Foo hasMany Bar
Bar hasOne Baz
Baz belongsTo Bar
数据库fk
Foo
Bar.foo_id
Baz.bar_id
getDatasource()->getLog()
消息说由于外键无法保存。显然Baz
无法从 saved 中获取 fk Bar
。
我真的找不到问题所在。