在我的应用程序中,我有两种类型的用户“标题” 和“公证人” 。
我已经通过多对多关系将一些用户连接到这些角色[有一个表'role_user'
,它是数据透视表,包含来自用户的'user_id'
表和“ 角色表”中的“ roles_id'
”。
我已经为用户赋予了特定的角色。到目前为止,我的应用程序还可以。
现在,我想在他注册时设置一个用户角色[这个想法是在注册之前选择一个单选按钮]。
当某人注册时,将被授予选定的角色。如何在多对多关系中做到这一点?
答案 0 :(得分:2)
当用户选择单选按钮时,您将获得该值并调用用户关系来分配角色。
$role = $request->role //get this value from radio
由于这是注册方法,因此您将首先创建用户并调用关系以附加角色。
$user = User::create($request->only('required fields ...'));
现在将角色附加到创建的用户。
$user->roles()->attach($role); //this line is actual answer to your question
这将用用户角色填充您的数据透视表
确保已在roles()
模型中定义了User.php
方法
public function register (Request $request){
$role = $request->role; //this is not necessary to save role value in variable you can get it directly from request object
$user = User::create($request->only('required fields'));
$user->roles()->attach($role or $request->role); // you can get role value directly from $request object.
}