编程语言
首页 > 编程语言> > php – Laravel 5和Entrust.如何同时保存用户和附加角色

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