Laravel - 我有一个具有不同角色的用户模型。如何在具有特定角色的用户之间建立关系? [关闭]
Posted
技术标签:
【中文标题】Laravel - 我有一个具有不同角色的用户模型。如何在具有特定角色的用户之间建立关系? [关闭]【英文标题】:Laravel - I have a User model that has different roles. How to make a relationship between users with certain roles? [closed] 【发布时间】:2016-09-10 21:47:38 【问题描述】:我在 Laravel 5.2 中有一个用户模型和一个角色模型。在我的角色中,我有学生和老师。每个学生都有很多老师,反之亦然。如何链接它们?
【问题讨论】:
这个主题在 laravel 文档 laravel.com/docs/5.2/eloquent-relationships987654321@ 中有很好的介绍 但我没有 2 个模型。我只有一个具有不同角色的用户。我需要用户按照一定的角色来存储用户。 【参考方案1】:首先,你需要创建三个表roles
- users
- role_user
见下图:
角色表:
Schema::create('roles', function (Blueprint $table)
$table->increments('id');
$table->string('name');
);
然后 用户表
Schema::create('users', function (Blueprint $table)
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->rememberToken();
$table->timestamps();
);
用户角色表
Schema::create('user_role', function (Blueprint $table)
$table->bigInteger('user_id')->unsigned();
$table->integer('role_id')->unsigned();
$table->foreign('user_id')
->references('id')->on('users');
$table->foreign('role_id')
->references('id')->on('roles');
);
创建角色模型:
class Role extends Model
protected $table = 'roles';
public $timestamps = false;
public function users()
return $this->belongsToMany(User::class, 'user_role');
然后将角色关系添加到用户模型中
class User extends Authenticatable
protected $table = 'users';
public function roles()
return $this->belongsToMany(Role::class, 'user_role');
给用户一个角色,
$user = User::findOrFail(1); //lets say for user 1
$user->roles()>attach(Role::where('name', 'Teacher')->first());
【讨论】:
这不是我要问的,我已经这样做了 查看attach()的最后一个例子 再说一次,这不是我要问的。我需要角色为学生的用户与角色为老师的用户建立多对多关系。 能否请您一遍又一遍地阅读解决方案... $table->foreign('user_id') ->references('id')->on('users'); $table->foreign('role_id') ->references('id')->on('roles');这就是两个不同角色的用户之间建立联系的原因吗?以上是关于Laravel - 我有一个具有不同角色的用户模型。如何在具有特定角色的用户之间建立关系? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章