微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐