【问题标题】:Laravel: Use the method updateOrCreate on polymorphic relationLaravel:在多态关系上使用方法 updateOrCreate
【发布时间】:2018-11-21 18:14:55
【问题描述】:

我正在尝试对我的多态关系(称为 Taggable)使用方法 updateOrCreate。这是我用来创建新标签的方法。

public function attachTag($attributes)
    {
        return $this->tags()->create($attributes);
    }

如果我将创建方法更改为更新,它在更新模型时也可以正常工作。但是我想使用 updateOrCreate 方法,这是有问题的,因为我没有在 $attributes 中传递 ID,因此它不知道数据库中是否有一些记录。

我做了一些谷歌搜索,发现关于这个特殊情况的信息很少,只有我应该传递第二个参数。但我很困惑我应该将哪个参数作为第二个参数传递以使其正常工作。

提前感谢您的帮助。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    2 种可能的解决方案

    1-https://laracasts.com/discuss/channels/eloquent/updateorcreate-on-polymorph-relation

    在此链接中,您应该通过选择第二个参数来检测您想要的。

    2-Laravel: UpdateOrCreate on Relation? 我认为它也解决了您的问题。

    我曾经使用解决方案#1。

    希望对你有帮助

    【讨论】:

    • 我读到 laracasts 讨论,但这对我来说并没有什么帮助,因为他将唯一 id 作为参数之一传递(然后可以用来查找记录)。问题是,我真的不知道记录的 id,只知道 taggable_id。现在有文章、帖子和更多可以标记的模型,所以 taggable_id 可以是相同的。这就是我需要解决的问题,但无法弄清楚。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-09-24
    • 2018-11-19
    • 2017-07-30
    • 2022-11-07
    • 2019-06-21
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多