后台——用户授于角色功能

1.创建用户授于角色提交路由

   //处理用户授于角色路由
    Route::post('user/doauth', 'UserController@doAuth'); 

2.添加用户授于角色提交表单

  • 表单提交地址
      <form class="layui-form" action="{{ url('admin/user/doauth') }}" method="post">
  • 提交的表单项
    <span class="x-red">*</span>用户名称
    <span class="x-red">*</span>角色列表
  • 提交的表单名称name和表单值vulue
      //用户id
      <input type="hidden" name="user_id" value="{{ $user->user_id }}">
      //用户名称
      <input type="text" name="user_name" value="{{ $user->user_name }}">
      //用户拥有的角色id(为数组)
      <input type="checkbox" checked name="role_id[]" value="{{ $v->id }}">

3.创建用户授于角色提交控制器方法

    //执行用户授于角色方法
    public function doAuth(Request $request)
    {
        //1.从表单获取到用户名称、用户id、角色id数组   
        $input = $request->except('_token');
        //dd($input);
        //2.删除用户已经拥有的角色
        //从中间表user_role中user_id字段中查询出表单提交过来的$input['user_id'],进行删除
        DB::table('user_role')->where('user_id',$input['user_id'])->delete();
        //3.循环表单提交过来的角色id数组,每次循环出一个角色id,则向中间表user_role中插入一条用户id对应的角色id
        if (!empty($input['role_id'])) {
            foreach($input['role_id'] as $v){
                DB::table('user_role')->insert(['user_id' => $input['user_id'],'role_id' => $v]);           
            }
        }
        return redirect('admin/user');
    }
posted @ 2020-12-07 21:17  shengge  阅读(135)  评论(0)    收藏  举报