簡體   English   中英

CakePHP-如何在保存時將關聯記錄添加到模型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM