1. 程式人生 > 實用技巧 >後臺給使用者授於角色執行方法

後臺給使用者授於角色執行方法

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');
    }