doukun5339 2016-06-19 03:26
浏览 103

如何在Laravel的默认AuthController中分配角色

I want to assign a role to user during sign up in Laravel 5.2 default AuthController, so how to do this if anyone idea? Here I have three tables users, roles and user_roles thanks

My migrations: users_migration:

public function up()
{
   Schema::create('users', function (Blueprint $table) {
     $table->increments('id');
     $table->string('name');
     $table->string('email')->unique();
     $table->string('password', 60);
     $table->rememberToken();
     $table->timestamps();
  });
}

user_role:

public function up()
{
   Schema::create('user_roles', function (Blueprint $table) {
     $table->increments('id');
     $table->integer('user_id');
     $table->integer('role_id');
     $table->timestamps();
   });
}

roles migration:

 public function up()
{
   Schema::create('roles', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name', 60);
    $table->text('description');
    $table->timestamps();
   });
 }

And the models:

User model:

  .
  .
  .
public function roles()
{
    return $this->belongsToMany('App\Role', 'user_roles','user_id','role_id');
}

Role model:

class Role extends Model
   {
      protected $primaryKey = 'r_id';

     public function users()
   {
       return $this->belongsToMany('App\User',    'user_roles','role_id','user_id');
   }
}
  • 写回答

1条回答 默认 最新

  • doumiang0597 2016-06-19 14:22
    关注

    here are what I do but you can change it whatever you want.

    i'll override register() of registerUsers trait in AuthController.

    public function register(Request $request)
    {
      //your logic
    
      $roles = $request->input('role_id');
    
      $method = $roles instanceof Role ? 'save' : 'saveMany';
      //you can use foreach too
      $user->roles()->$method($roles);
    
    }
    

    as mentioned at the docs you can use $user->roles()->attach($roleId) to attach roles to user

    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算