【问题标题】:Eloquent. How to get access to not related table雄辩。如何访问不相关的表
【发布时间】:2016-09-07 20:30:43
【问题描述】:

我有以下型号:

商店列表

Shopping_list_item

产品

如果我尝试使用 hasManyThrough(我故意在'shopping_list_idd''idd' 中犯了错误以显示错误消息):

 public function product()
    {
        return $this->hasManyThrough(Product::class, Shopping_list_item::class, 'shopping_list_idd', 'idd', 'product_id');
    }

我得到以下信息:

SQL:选择products.*、shopping_list_items.shopping_list_idd 来自products 内连接shopping_list_items on shopping_list_items.id= products.idd 其中 shopping_list_items.shopping_list_idd 为空限制 1

问题:如何将shopping_list_items.id 更改为shopping_list_items.product_id,这样我才能正确加入?或者,也许您还有其他建议,我可以如何从 shop_list 访问 product 信息。

补充问题:为什么在查询的末尾有这部分是null limit 1?

【问题讨论】:

  • 可以分享一下相关的表定义吗?

标签: php laravel eloquent


【解决方案1】:

您是否尝试将位置从'id', 'product_id' 切换到'product_id','id'

【讨论】:

  • 如果我切换它不会改变 id: SQL: select products.*, shopping_list_items.shopping_list_idd from products inner join shopping_list_items on shopping_list_items.@ 987654329@ = products.product_id 其中shopping_list_items.shopping_list_idd 是空限制1
【解决方案2】:

这个问题在这里解决了 - Has many through many-to-many。这里有多对多的关系,所以你不能简单地使用hasManyThrough

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 2020-12-13
    • 1970-01-01
    • 2020-11-03
    • 2015-12-05
    • 2019-08-10
    • 2020-09-25
    • 2019-03-17
    相关资源
    最近更新 更多