我正在使用CakePHP 2.3,并试图找到执行相关数据保存的正确方法。我已经设置了一个保存图片数据的图像上传表单,但同时我也想处理保存的图像,这样在保存时,我的应用程序应该检查文件并提取所有exif数据,并将这些标签添加为相关的模型标签。
我的亲戚是
Picture hasMany Tags
Tag belongsTo Picture
现在我正试图使用Picture beforeSave回调以编程方式将新记录添加到数据数组中,但它不起作用(它不保存添加的数据)。
图片控制器
$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));
查看食谱了解更多详细信息