SaveAll 不保存关联的 hasOne 数据

Posted

技术标签:

【中文标题】SaveAll 不保存关联的 hasOne 数据【英文标题】:SaveAll not saving associated hasOne data 【发布时间】:2012-04-09 23:04:39 【问题描述】:

在这家呆了几个小时,无法弄清楚为什么会发生这种情况,感谢任何帮助...

我有两个模型 - 图片和链接。

图片hasOne链接

链接belongsTo 图片

我将以下格式的数据放在一个名为$images的变量中

Array
(
    Array
    (
        [Image] => Array
            (
                [timestamp] => ...
                [full] => ...
            )

        [Link] => Array
            (
                [loc] => ...
                [lastmod] => ...
            )

    )
    ...
)

然后拨打$this->Image->saveAll($images, array('deep'=>true));

这会保存 Image 模型,但不会保存 Link 模型。

在 Image 模型的 beforeSave 回调中,$this->data 中的数据被适当地传递。但是在 afterSave 回调中,Link 模型出现了——但是它的字段是空的。

没有为链接数据保存数据,只有图像数据。

我错过了什么吗?阅读文档一百万次:(

【问题讨论】:

您能在您的模型中发布您的$hasOne$belongsTo 吗? 【参考方案1】:

我觉得回答这个有点愚蠢,但是就这样吧。

我在afterSave() 中为Image 模型使用了一些调试代码。

打印出数据后,我打电话给exit()

我没有注意到,在保存 Image 之后,Cakephp 也不会访问数据中的 Link 模型来保存它。

0_0

【讨论】:

以上是关于SaveAll 不保存关联的 hasOne 数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 hasOne 关联保存模型

CakePHP如何在一个saveAll中不知道外键的情况下创建hasMany数据?

Spring数据保存与saveAll性能

cakephp saveAll 不适用于关联

Cakephp 3.7 hasOne字段数据不保存

Cakephp - saveAll 和 beforeSave