我有以下數據,控制器和模型,我需要將它們保存在一起。 Foo
保存,然後Bar
,但deep
選項seens不工作時保存Baz
。無法從控制器深度保存3個級別
數據
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
Databa SE FK
Foo
Bar.foo_id
Baz.bar_id
getDatasource()->getLog()
消息說,無法保存,因爲外鍵。顯然Baz
無法從保存的Bar
中獲得fk。
我真的找不到問題所在。
'ddep'在這裏只是一個錯字; D –
我需要先在'Bar'('Bar.foo_id')中創建'Foo'來使用fK,所以不能顛倒保存順序。 –
Weel,我三重檢查了我的模型,並注意到一個fk被命名爲錯誤。謝謝! –