laravel用户通过多对多关系中的角色进行注册

时间:2019-03-01 05:50:25

标签: laravel

在我的应用程序中,我有两种类型的用户“标题” “公证人”

我已经通过多对多关系将一些用户连接到这些角色[有一个表'role_user',它是数据透视表,包含来自用户的'user_id'和“ 角色表”中的“ roles_id'”。

我已经为用户赋予了特定的角色。到目前为止,我的应用程序还可以。

现在,我想在他注册时设置一个用户角色[这个想法是在注册之前选择一个单选按钮]。

当某人注册时,将被授予选定的角色。如何在多对多关系中做到这一点?

1 个答案:

答案 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. 

}