您好我正在关注本教程
https://www.5balloons.info/user-role-based-authentication-and-access-control-in-laravel/#comment-1889
我做了一切正常并添加了一些规则,一个自定义错误页面,只有管理员可以注册新用户 . 在/ admin视图中,我可以看到所有用户注册,管理员可以删除此用户 .
我还需要两个角色,供用户查看特定视图,我正在尝试在注册表单中定义角色,以便管理员可以定义谁可以看到特定页面 . 执行用户的一个角色和高级用户的一个角色 .
我能够做到这一点,但只能通过在database role_user表中添加关系
任何想法如何通过注册表格完成这项工作?无需输入数据库表
我假设您正在使用Blade模板 . 使用以下命令为Role select添加下拉列表 .
<select name="role"> @foreach ( $roles as $role ) <option value="${{role->id}}">{{ $role->name }}</option> @endforeach </select>
您需要提供当前可用的角色,从您的角色模型(ha)到视图 . 这可以在渲染视图时在控制器中完成 .
// Part of your controller $roles = Role::all(); return view('your-view', [ 'roles' => $roles ]);
这里的关键部分是 return view('your-view', [ 'roles' => $roles ]) . view 函数中的第二个参数是要传递给视图本身的数据 . 有关详细信息,请参阅the Blade docs .
return view('your-view', [ 'roles' => $roles ])
view
提交表单后,您可以在保存后将该角色“附加”到用户模型中 .
$user = new User(); // Assign user info here $user->save(); $user->roles()->attach($request->role);
->roles() 是我们要附加到的用户所属的模型 .
->roles()
->attach($request->role) - $request->role 是我们要附加到新创建的用户的角色的ID .
->attach($request->role)
$request->role
您可以read more in the docs关于附加和分配与他人的各种关系 .
1 回答
我假设您正在使用Blade模板 . 使用以下命令为Role select添加下拉列表 .
您需要提供当前可用的角色,从您的角色模型(ha)到视图 . 这可以在渲染视图时在控制器中完成 .
这里的关键部分是
return view('your-view', [ 'roles' => $roles ])
.view
函数中的第二个参数是要传递给视图本身的数据 . 有关详细信息,请参阅the Blade docs .提交表单后,您可以在保存后将该角色“附加”到用户模型中 .
->roles()
是我们要附加到的用户所属的模型 .->attach($request->role)
-$request->role
是我们要附加到新创建的用户的角色的ID .您可以read more in the docs关于附加和分配与他人的各种关系 .