它的字段中有3 个模型Region
,Branch
和User
一个数据透视表user_branches
user_id
branch_id
该地区有分支机构有关系
public function branches(){
return $this->hasMany(Branch::class);
}
分支有关系
public function users()
{
return $this->belongsToMany('App\User', 'user_branches');
}
如何返回数据库中带有分支的所有区域,但只返回登录用户可用的那些分支
我通过这种方式获得了其中的所有区域和分支Region::with('branches')->get();
,结果证明您只需要对用户可用的那些分支进行排序
您可以在内部使用查询生成器。
with()
在这种情况下,需要+组合whereHas()
。获取所有具有过滤分支的区域:
仅获取那些具有过滤分支的区域和过滤分支:
如果数据库抱怨该列
id
,那么您应该将其替换id
为users.id
: