一、给用户分配角色
1.1 用户模型关联角色
用户和角色之间的关系:属于关系 boLongsTo 在User.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的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。
|