php – Laravel 5和Entrust.如何同时保存用户和附加角色
作者:互联网
有没有人尝试过Entrust for User Roles& Laravel 5的权限?
我想同时添加并保存用户并将角色附加到其中.这是我的代码
$role = Role::where('name','=','admin')->first();
$user = new User();
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
if($user->save()){
$user->attachRole($role);
return redirect('dashboard/users')->with('success-message','New user has been added');
}
但$user-> attachRole($role);虽然它可以在我的databaseSeeder上工作,但在我的UserController上不起作用.
解决方法:
我认为你有这个问题,因为你永远不会保存在数据库中.
尝试这样的事情.
$role = Role::where('name','=','admin')->first();
$user = new User();
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save()
$user->attachRole($role);
return redirect('dashboard/users')->with('success-message','New user has been added');
当然,只有使用laravel的自动增量功能自动增加模型的id时,此方法才有效.如果你使用像uuids这样的东西来唯一地标识你的字段,你还应该包括public $incrementing = false;在你的模型中.
确保在模型中包含HasRole特征.
另外看看Akarun的答案,因为它也会工作.创建方法,创建一个新实例并保存到db,这样你就不需要$user-> save()
标签:php,laravel,web,laravel-5,user-roles 来源: https://codeday.me/bug/20190623/1274439.html