我想在Laravel 5.2默认的AuthController注册期间为用户分配一个角色,那么如果有人想到怎么办呢? 这里我有三个表用户,角色和 user_roles 感谢
我的迁移: 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();
});
}
角色迁移:
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 60);
$table->text('description');
$table->timestamps();
});
}
模特:
用户模型:
.
.
.
public function roles()
{
return $this->belongsToMany('App\Role', 'user_roles','user_id','role_id');
}
角色模型:
class Role extends Model
{
protected $primaryKey = 'r_id';
public function users()
{
return $this->belongsToMany('App\User', 'user_roles','role_id','user_id');
}
}
答案 0 :(得分:0)
这是我的所作所为,但你可以随心所欲地改变它。
我将覆盖AuthController中registerUsers trait的register()
。
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);
}
如文档中所述,您可以使用$user->roles()->attach($roleId)
将角色附加到用户