【发布时间】:2021-01-29 17:12:41
【问题描述】:
如果订单接受者登录然后获取他自己创建的区域和他的管理员创建的区域(角色 = 1)或子管理员(角色 = 2)在 $areas
我有 3 个表:(1.users 2.areas 3.ordertaker)
我有 3 个角色:(1.admin 2. sub-admin 3. ordertaker)
admin 和 sub-admin 可以创建(订单接受者和区域) 接单员也可以创建(区域)
每个订单接受者都与用户表中的 ot_of 相关联(对于 admin(id) 和 sub-admin(id))
每个区域都与 created_by 相关联
我们需要执行第一次检查哪个订单接受者登录的步骤
if(Auth::user()->role == 1 ){
either ot_of (admin(ordertaker) role = 1 or subadmin(ordertaker) role = 2)
if{
then get area if ot_of belongs to admin then get both area created_by(ordertaker and admin)
}else
{
then get area if ot_of belongs to sub-admin then get both area created_by(order taker and sub-admin)
}
}
如何编写此查询每个人都使用唯一 ID 进行唯一标识 现在我正在使用此代码获取区域
$idss = [Auth::id()];
if (Auth::user()->role < 3) {
$idss = array_merge($idss, User::where('ot_of', Auth::id())->pluck('id')->toArray());
}
$fitered_area = Area::all();
$allareas = $fitered_area->whereIn('created_by', $idss);
但问题是,如果 ordertaker 登录,他无法访问他的管理区域,因为他没有创建它
【问题讨论】:
标签: php jquery mysql sql laravel