我是Laravel的绝对初学者。
我想在数据透视表或"role_id"
上获取"admin"
,但我不知道如何操作。我想建立一个系统,根据用户的角色显示不同的界面。因此,我想通过在数据透视表上获取admin
来区分用户instructor
,user
和"role_id"
。
任何建议都将受到赞赏。
Users.php
public function users(){
return $this->belongsToMany('App\User');
}
Roles.php
public function roles(){
return $this->belongsToMany('App\Role')->withTimestamps();
}
角色表:
1|admin|2016-04-02 16:51:25|2016-04-02 16:51:25
2|instructor|2016-04-02 16:51:25|2016-04-02 16:51:25
3|student|2016-04-02 16:51:25|2016-04-02 16:51:25
我想在数据透视表上获取role_id
。
我可以使用代码" \ Auth :: User() - >角色"
{
"id": "1",
"name": "admin",
"created_at": "2016-04-02 16:51:25",
"updated_at": "2016-04-02 16:51:25",
"pivot": {
"user_id": "1",
"role_id": "1",
"created_at": "2016-04-02 16:54:06",
"updated_at": "2016-04-02 16:54:06"
}
}
答案 0 :(得分:1)
我查看了我的角色设置,您需要在Roles.php
public function hasRole($name)
{
foreach ($this->roles as $role)
{
if ($role->name == $name) return true;
}
return false;
}
public function assignRole($role)
{
return $this->roles()->attach($role);
}
public function removeRole($role)
{
return $this->roles()->detach($role);
}
hasRole
检查角色assignRole
和removeRole
以添加和删除角色。
对于测试,您可以执行类似
的操作if ($user->hasRole('student')) return "you are in student group"