【问题标题】:Laravel HasManyDeep relationshipLaravel HasManyDeep 关系
【发布时间】:2022-01-04 03:39:40
【问题描述】:

我有 3 张桌子

公司->ManyToMany->活动->BelongsTo->会议室

我需要使用 HasmanyDeep 来查找与特定公司相关的所有会议室。 当我在公司模型中写这个时,它返回空

 public function chambers(){
    return $this->hasManyDeep('App\Models\Chamber',['activity_company','App\Models\Activity'],['activity_id','company_id'],['chamber_id']);
}
 

【问题讨论】:

  • 你用的是什么包?
  • 同时分享模型栏目

标签: laravel relationship has-many-through


【解决方案1】:

我相信要反转belongsTo关系上的关系,你可以使用语法[null, null, 'chamber_id']。

return $this->hasManyDeep(
    'App\Models\Chamber',
    [
        'activity_company',
        'App\Models\Activity',
    ],
    ['activity_id','company_id'],
    [null, null, 'chamber_id']
);

【讨论】:

  • 没用,他现在相信,活动有很多分庭,不属于分庭,'code' SQLSTATE[42S22]: Column not found: 1054 Unknown column 'chambers.activity_id' in 'on Clause ' (SQL: select chambers.*, activity_company.company_id as laravel_through_key from chambers inner join activities on activities.id = @9876543@30@.@98765431 987654332@ activity_company.activity_id = activities.id 其中activity_company.company_id = 29)
  • 但是你说的问题属于:) 我会在一分钟左右更新
  • 如果不是一个有很多深的,那一定是一个有一个深的,一个活动只有一个房间还是我弄错了?更新了代码。
  • 活动属于一个分会,但是公司有很多活动,所以公司也会属于多个分会
  • 好吧,最后一次尝试 :) hasManyDeep 总是很难,仔细阅读了文档,我认为你可以让它使用编辑中建议的语法
猜你喜欢
  • 2021-01-04
  • 2020-02-22
  • 2013-04-19
  • 2015-11-13
  • 2020-10-24
  • 2017-10-21
  • 2018-01-22
相关资源
最近更新 更多