laravel 5.2:给自带的注册表单添加一个角色项,怎么保存?请看示例
程序员文章站
2022-06-04 20:42:05
...
使用的laravel5.2,用
Zizaco/entrust
进行角色和权限管理,现在,在laravel自带注册表单添加了一个“角色”项,用户的角色在注册时由用户自己确定了,怎么保存这个角色呢?示例如下:
注册表单: 在laravel自带表单基础上增加一个Role
项。
AuthController 自带的。
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
单独使用Zizaco/entrust
时,我可以写一个RolesController,里面写一个attachRole()方法,可以手动分配角色。像这样:
public function attachRole()
{
$user = User::where('name', '=', 'foo')->first();
$user->roles()->attach(2);
return "attachRole done";
}
现在,我想接收注册表单中传过来的role值,然后保存到Zizaco/entrust
生成的role_user表中,而不是用上面的attachRole()方法手动赋予角色。是修改AuthController的create
方法么,还是其他做法?怎么做呢?
回复内容:
使用的laravel5.2,用Zizaco/entrust
进行角色和权限管理,现在,在laravel自带注册表单添加了一个“角色”项,用户的角色在注册时由用户自己确定了,怎么保存这个角色呢?示例如下:
注册表单: 在laravel自带表单基础上增加一个Role
项。
AuthController 自带的。
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
单独使用Zizaco/entrust
时,我可以写一个RolesController,里面写一个attachRole()方法,可以手动分配角色。像这样:
public function attachRole()
{
$user = User::where('name', '=', 'foo')->first();
$user->roles()->attach(2);
return "attachRole done";
}
现在,我想接收注册表单中传过来的role值,然后保存到Zizaco/entrust
生成的role_user表中,而不是用上面的attachRole()方法手动赋予角色。是修改AuthController的create
方法么,还是其他做法?怎么做呢?
把这两个方法合成一个不就可以了吗
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
$user->roles()->attach($data['role']);
return $user;
}