Laravel Eloquent加入了三张桌子-有很多通过

u

嗨,我有三张桌子

组织

 id | name
 1  | org1
 2  | org2

地点

id | name  | organisation_id
1  | site1 | 1
2  | site2 | 1
3  | site3 | 2

服务

id | name     | site_id
1  | service1 | 1
2  | service2 | 1
3  | service2 | 2

在这里,我想获得组织的所有服务(假设1)。我可以像这样获得组织的所有站点,但是我如何获得服务:

$sites = Site::whereHas('organisation', function ($query) {
    $query->where('id', 1);
})->get();

模型

组织模型

public function sites() {
    return $this->hasMany('App\Site');
}

siteModel

public function organisation(){
    return $this->belongsTo('App\Organisation');
}

public function services() {
     return $this->hasMany('App\Service');
} 

serviceModel

public function site(){
     return $this->belongsTo('App\Site');
}
蛇龙

您可以通过“有很多经历”获得类似的关系

模特组织

public function services()
{
    return $this->hasManyThrough(Service::class, Site::class, 'organisation_id', 'site_id', 'id');
}

得到

$services = Organisation::find(1)->services;

或者,您可以嵌套 whereHas获得所有服务

$services = Service::whereHas('site.organisation', function ($query) {
    $query->where('organisation.id', 1);
})->get();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

laravel与第三张桌子很多

来自分类Dev

Laravel有很多通过

来自分类Dev

如何通过第三张表Laravel选择?

来自分类Dev

Laravel 5中的三张表,有口才的模型

来自分类Dev

Laravel Eloquent具有很多关系

来自分类Dev

Laravel Eloquent具有很多关系

来自分类Dev

蟾蜍加入三张桌子

来自分类Dev

使用一张桌子加入三张桌子

来自分类Dev

通过ID与第三张桌子一起选择

来自分类Dev

一对多协会,没有第三张桌子

来自分类Dev

Laravel雄辩地加入了几张桌子

来自分类Dev

Laravel 5雄辩的关系“有很多通过” SQL异常

来自分类Dev

laravel 5.8 eloquent:有很多关系模型

来自分类Dev

Linq加入Timstamp订购的三张桌子

来自分类Dev

从子查询到加入。三张桌子怎么连接?

来自分类Dev

Laravel有很多地方

来自分类Dev

有很多通过自我加入batmanjs的方式

来自分类Dev

Laravel从第三张表返回属性

来自分类Dev

Laravel4中有很多通过数据透视表

来自分类Dev

在三张桌子之间计数

来自分类Dev

sqlite左联接与三张桌子

来自分类Dev

仅在三张桌子上加入一行

来自分类Dev

同一张桌子上有多个计数(Laravel)

来自分类Dev

查找拥有三张卡片的人

来自分类Dev

查找拥有全部三张牌的人

来自分类Dev

如何在没有 foreach 的情况下通过 3 加入 Laravel Eloquent 模型进行查询

来自分类Dev

Laravel过滤有很多结果

来自分类Dev

Laravel搜索有很多关系

来自分类Dev

Laravel计数行数有很多关系