CakePHP - 如何在保存时向模型添加关联记录?

时间:2013-09-03 21:04:26

标签: php cakephp

我正在使用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
                )
         )
)

如何在不弄乱控制器过多的情况下实现我想要的目标?我想要我的生意 逻辑主要停留在模型上。

1 个答案:

答案 0 :(得分:0)

你需要使用深度才能实现这一目标。根据食谱:

  

使用$ options ['deep'] = true(自2.1起)保存相关数据

示例

$Model->saveMany($data, array('deep' => true));
$Model->saveAssociated($data, array('deep' => true));

查看cookbook了解详情