【发布时间】:2014-06-26 02:44:56
【问题描述】:
我有以下数据库结构,一个使用数据透视表连接的用户和角色表:
用户表包含所有信息,例如电子邮件和密码,而角色表定义了不同的角色:
角色表
- 1 -> 管理员
- 2 -> 编码器
- 3 -> 推销员
- 4 -> 技术
现在角色是多对多定义的,因为有些编码器也被分配为管理员。其他人可能具有推销员+管理员角色,甚至是编码员+推销员。基本上可以将多个角色分配给某人。
表结构
用户
- 身份证
- 电子邮件
角色
- 身份证
- 角色
role_user
- 身份证
- role_id
- user_id
我知道如果我这样做了
$user = User::find(1)->email;
return $user;
结果将显示 ID 为 1 的用户的电子邮件。
我试图做$user = Auth::user()->roles;,以便它获得当前经过身份验证的用户的角色。
但是这样做会返回一个 JSON,其中显示了用户被分配到的所有角色。
我希望在过滤器中使用它,做这样的事情
$user=Auth::user()->roles;
if($user == 'admin')
{
//do something
}
else
{
//you are not an admin
}
if($user == 'encoder')
{
//do something
}
else
{
//you are not an encoder
}
【问题讨论】:
标签: laravel laravel-4 eloquent