tp5.1 角色授权

$data = request()->param();
        if(empty($data['role_id'])){
            return json(['code'=>1,'data'=>'','msg'=>'请先选择角色']);
        }
        $role = roles::find($data['role_id']);
        $ids = explode(',',$data['auth_ids']);
        $arr = YyRulerAuth::where("role_id",$data['role_id'])->select();

        if(!empty($arr)){
            $strs="";//空的字符串
            foreach($arr as $k =>$v){
                $strs .= $v['auth_id'].',';
            }
            $xian = substr($strs,0,-1);
            $strs = explode(',',$xian);
            $zeng=array_values(array_diff($ids,$strs));

            if(!empty($zeng[0])){
                $zeng=array_values(array_diff($ids,$strs));

                for($i=0;$i<count($zeng);$i++){
                    $data = [
                        'role_id' =>$data['role_id'],
                        'auth_id' => $zeng[$i],
                        'create_time'=>date("Y-m-d H:i:s"),
                    ];
                    $result = YyRulerAuth::insert($data);
                    $auth = YyAuth::where("id",$ids[$i])->find();
                }
            }
            $jian = array_values(array_diff($strs,$ids));  //array(1) {[0] => string(0) "" }
            if(!empty($jian[0])){
                if (is_array($jian))
                    $id = implode(',', $jian);
                $op = is_numeric($id) ? '=' : 'in';
                $ids = explode(",",$id);
                for($i=0;$i<count($ids);$i++){
                    $auth = YyAuth::where('id', $ids[$i])->find();
                }

                YyRulerAuth::where('auth_id', $op, $id)->where("role_id",$data['role_id'])->delete(true);
            }

        }else{
            for($i=0;$i<count($ids);$i++){
                $data = [
                    'role_id' => $data['role_id'],
                    'auth_id' => $ids[$i],
                    'create_time'=>date("Y-m-d H:i:s"),
                ];
                $result = YyRulerAuth::insert($data);
                $auth = YyAuth::where("id",$ids[$i])->find();
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值