Laravel多态关系复杂选择

时间:2019-06-10 11:03:01

标签: laravel-5 eloquent

我有与不同实体具有多态关系的用户。这是我的数据结构:

group
    -id
    -title
region
   -id
   -title
activity
   -id
   -title

users
   -id
   -name

relationships
    -id
    -user_id
    -relationship_id
    -relationship_type
    -relationship_level

在所有模型中都定义了关系,例如-用户模型:

public function organization()
{
    return $this->morphedByMany('App\Organization', 'relationship')->withPivot('relationship_level');
}  

relationship_level列包含“管理员”,“区域管理员”,“组管理员”,“用户”等之一。您可以在多个实体中担任多个角色。

我想在用户模型scopeByAutorization中编写一个范围,该范围将返回Auth::user()以下的所有用户。

例如,如果我是一个群组中的group manager,而另一个区域中的regional manager,则我希望查询返回的关系级别比我低的所有人(如果他们进入User-> Group M ->区域M)在相应的组和区域中。

Eloquent是否完全可以实现,还是我需要编写许多自定义逻辑?

0 个答案:

没有答案
相关问题