我正在尝试为一个非营利组织建立一个领土管理系统。TMA 的目的是将区域分配给不同的用户。用户可以请求被分配到一个区域,超级管理员可以拒绝或确认。每个领土都有不同的类型(例如:A 类、B 类和 C 类)。每个用户也有不同的类型(A、B 或 C)用户只能查看和请求相同类型的区域,并且只能查看和请求当前未分配给其他用户的区域。(例如:类型 A 的用户可以查看和请求类型 A 的区域)。数据库架构:territories- id- type_id- nameusers- id- type_id- nametypes- id- nameassignments- id- territory_id- user_id- status (enum: confirmed, declined, requested, canceled)我尝试建立关系,但发现这并不简单。(或者也许我只是没有做对)这应该用查询构建器来完成吗?如果是这样,检索与 Auth User type_id 对应的可用领土列表(尚未分配)的正确方法是什么?
2 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
您需要为特定的 检索所有分配的 teriteri type_id,然后需要从领土表中找到剩余的 teriteri。
$user = Auth::user();
$same_type_users = DB::table('users')->where('type_id',$user->type_id)->pluck('id');
$all_assigned_teritory = DB::table('assignments')->where('user_id','IN',$same_type_users)->pluck('id');
$available_teritories= DB::table('territories')->where('id', 'NOT IN', $all_assigned_teritory)->where('type_id' , $user->type_id)->value('email');
- 2 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消