Laravel Auth :: user()会话自定义?

时间:2017-11-23 19:36:53

标签: php laravel laravel-5 session-variables

我在数据库中有三个表。一个是用户,第二个是角色,另一个是user_role。

角色表中的

具有id和name。

user_role表中的

具有user_id和roll_id。

现在我想在用户登录app时设置会话。 llike Auth :: user() - > roll

1 个答案:

答案 0 :(得分:0)

在用户模型中创建关系

public function roles()
{
    return $this->belongsToMany(Role::class);
}

在角色模型中创建关系

public function users()
{
    return $this->belongsToMany(User::class);
}

然后,您可以将角色附加到这样的用户:

Auth::user()->roles()->attach(id_of_the_role_from_roles_table);

这将在数据透视表role_user中创建一个新条目,然后您可以在用户模型中创建一个函数

public function hasRole($role)
{
    return $this->roles->contains('id', $role);
}

您可以在代码中的任何位置调用它。例如:

Auth::user()->hasRole(1);

这将返回true或false,然后您可以使用该信息执行某些操作。