[英]CakePHP - How to add associated records to a model on save?
我正在使用CakePHP 2.3,並試圖找到執行關聯數據保存的正確方法。 我已經設置了一個保存圖片數據的圖像上傳表單,但與此同時,我還想處理保存的圖像,以便在保存時,我的應用程序應檢查文件並提取所有exif數據,並將該標簽添加為關聯的模型標簽。
我的關系是
Picture hasMany Tags
Tag belongsTo Picture
現在,我正在嘗試使用Picture beforeSave回調以編程方式將新記錄添加到數據數組,但是它不起作用(它不保存添加的數據)。
PictureController
$this->Picture->create();
$this->Picture->saveAll($this->request->data);
beforeSave之后的數據數組
Array
(
[Picture] => Array
(
[field1] => foo
[field2] => bar
)
[Tag] => Array
(
[0] => Array
(
[tag] => example
[value] => example
)
[1] => Array
(
[tag] => example 2
[value] => example 2
)
)
)
如何在不弄亂控制器的情況下實現所需的功能? 我希望我的業務邏輯主要留在模型上。
您需要使用deep才能實現此目的。 根據食譜:
用$ options ['deep'] = true保存關聯數據(從2.1開始)
例子
$Model->saveMany($data, array('deep' => true));
$Model->saveAssociated($data, array('deep' => true));
檢查食譜以獲取更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.