我为我的应用程序运行Laravel 4 ...我是新手。
我使用标准的内置身份验证创建了一个小应用程序,一切正常。
我有User.php模型和路径文件处理我的所有请求。
我想要做的是添加管理员,我在我的用户表中添加了一个名为'is_admin'的字段..它是1或0的整数。
我希望能做的事情如下:
if is_admin() {
// Do stuff here if im an admin
}
任何人都可以帮助我实现我的目标......目前我所拥有的只是一个数据库专栏。
干杯,
答案 0 :(得分:3)
实际上,您可以检查用户是否是管理员,而不是使用此:
if(Auth::user()->is_admin) {
//...
}
因为Auth::user()
返回当前登录的用户,is_admin
表中有users
字段,所以如果用户已登录,则可以通过查看{{1登录用户模型的属性。如果用户是管理员,则值为Auth::user()->is_admin
,这将为真,1
结果在0
条件下将为false。
如果您想在用户模型中添加方法,那么您可以尝试这种方式:
if
所以你可以查看:
public function isAdmin()
{
return $this->is_admin;
}
答案 1 :(得分:0)
$val = (bool)DB::table(DB::raw('DUAL'))->whereExists(function($query) use ($userId)) {
$query->from = 'users';
$query->where('id', $userId)->where('is_admin', 1)->select(DB::raw(1));
})->first([DB::raw(1)]);
这将运行SELECT 1 FROM DUAL WHERE EXISTS (SELECT 1 FROM users WHERE id = X and is_admin = 1
查询,如果该行存在与否,将返回一个布尔值。
DUAL
是MySQL中的虚拟表,因此我们不必通过表格。使用了DB::raw(1)
,因为我们不需要为此获取列数据,我们只需要true / false。
如果您已经登录并且您正在使用Laravels Auth
,那么您可以像@WereWolf一样提到。