【问题标题】:laravel manyToMany multikeylaravel 多对多多键
【发布时间】:2021-03-17 21:35:07
【问题描述】:

我有四张桌子

报价

  • 身份证

项目

  • 身份证
  • quotation_id

文章

  • article_id
  • quotation_id

文章项目

  • pivot_item_id
  • pivot_article_id

articleItem 有更多列

我需要正确的项目和文章之间的多对多关系语法

目前我在item 模型中

return $this->belongsToMany(Article::class,'articleItem','pivot_item_id','pivot_article_id','id','article_id');

我真的不知道将quotation_id 放在哪里... 有可能吗?

【问题讨论】:

    标签: php laravel many-to-many multikey


    【解决方案1】:

    物品与文章的关系如何?文章是否分配给项目,反之亦然?更多信息会有所帮助。或许可以举一个你想要达到的目标的例子。

    多对多关系通常是users、roles、role_users等3张表。您所拥有的看起来类似于多态多对多,其中项目和文章与引用共享关系。

    【讨论】:

    • item 是一组可以添加到引用中的文章...不同的项目可以包含不同的文章并且它们可以在项目中重复...引用可以有很多项目和更多的文章。
    • 目前,当我调用 item->articles 时,我已退回所有文章,但所有引用都已退回。数据透视表有关于项目中文章数量和价格的信息,但对于不同的项目,它可能会有所不同,最后我希望每种类型的文章只有一个条目......我需要从每个角落到每个角落做关系...
    • 更多表和列的名称都不是那么容易...所以我需要指定它们
    • 一想...文章可以添加到报价单中而不是在项目中...:D
    • 谢谢你,你把我推到了正确的方向;)
    【解决方案2】:

    添加解决

    ->whereHas('quotation', function ($query) {$query->where('id', $this->quotation_id);})
    

    在关系声明的末尾。

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 1970-01-01
      • 2022-06-26
      • 1970-01-01
      • 2021-04-04
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多