laravel给用户分配角色

376 阅读1分钟

这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战

一、给用户分配角色

1.1 用户模型关联角色

用户和角色之间的关系:属于关系 boLongsToUser.php模型中写入如下关联代码:

    // 用户属于哪个角色
    public function role() {
        return $this -> belongsTo(Role::class, 'role_id');
    }

在这里插入图片描述

1.2 增加分配权限按钮

<span class="label label-primary radius">
	<a href="{{route('admin.user.role', $item)}}">分配权限</a>
</span>

在这里插入图片描述

1.3 添加分配权限路由

 // 给用户分配角色
 Route::match(['get', 'post'], 'user/role/{user}', 'UserController@role')->name('user.role');

在这里插入图片描述

1.4 增加用户表展示角色

在这里插入图片描述 在这里插入图片描述

1.5 分配角色控制器方法

    // 分配角色处理
    public function role(Request $request, User $user) {
        // 判断是否是post请求
        if ($request -> isMethod('post')) {
            $post = $this->validate($request, [
                'role_id' => 'required'
            ], [
            'role_id.required' => '必须选择'
            ]);
            $user -> update($post);
            return redirect(route('admin.user.index'));
        }

        // 读取所有的角色
        $roleAll = Role::all();
        
        return view('admin.user.role', compact('user', 'roleAll'));
    }

在这里插入图片描述

1.6 分配角色模版

user下新建role.blade.php写入如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
@include('admin.common.validate');
    <form action="{{route('admin.user.role', $user)}}" method="post">
        @csrf
        @foreach($roleAll as $item) 
        <div>
            <label for="">{{$item->name}}
                <input type="radio" name="role_id" value="{{$item->id}}" id=""
                    @if($item -> id == $user -> role_id) checked @endif
                >
            </label>
        </div>
        @endforeach
        <button type="submit">分配角色</button>
    </form>
</body>
</html>

在这里插入图片描述

1.7 效果

在这里插入图片描述 在这里插入图片描述

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。