CakePHP:如何删除 hasMany 与 saveAll 的关联

发布于 2024-10-06 13:13:27 字数 544 浏览 2 评论 0 原文

我有一个模型 model1,其中有许多 model2。如何从特定 model1(例如 ID 为 1234 的模型)中删除所有 model2?这意味着,在 SQL 中,

UPDATE
    model2
SET
    model1_id=NULL
WHERE
    model1_id=1234;

但是如何用 CakePHP 的方式来表述这个呢?我尝试使用以下数组作为参数 model1->saveAll

Array
(
[Model1] => Array
    (
        [id] => 1234
    )

[Model2] => Array
    (
    )
)

这意味着 Model2 只是设置为空数组。但这行不通。现在,我如何在 hasMany(从 object1 端看到)关系中“取消关联”属于另一个特定 object1 的 object2 ?

I have a model model1 which hasMany model2. How can I remove all the model2s from a specific model1, e.g. the one with ID 1234? This means, in SQL,

UPDATE
    model2
SET
    model1_id=NULL
WHERE
    model1_id=1234;

But how to formulate this the CakePHP way? I tried model1->saveAll with the following array as argument:

Array
(
[Model1] => Array
    (
        [id] => 1234
    )

[Model2] => Array
    (
    )
)

Which means, Model2 just set to a empty array. But this doesn't work. Now, how can I "un-associate" objects2 which belong to another specific object1 in a hasMany (seen from object1 side) relationship?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幻想少年梦 2024-10-13 13:13:27

尝试使用 updateAll($fields, $conditions)

$this->Model2->updateAll(array('model1_id' => null), array('model1_id' => 1234));

这是 CakePHP 文档

Try using updateAll($fields, $conditions)

$this->Model2->updateAll(array('model1_id' => null), array('model1_id' => 1234));

Here's the CakePHP Docs about this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文