【问题标题】:how to write a query to fetch record in laravel? using roles如何编写查询以获取 laravel 中的记录?使用角色
【发布时间】: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


    【解决方案1】:

    如果我可以为您的问题提出更动态的解决方案,请查看Laravel Permissions

    以这种方式对角色和权限进行硬编码,很快就会变得纠结。

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 2021-04-26
      • 2016-06-07
      • 2017-10-03
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多