Laravel 4 - 检查数据库值是否为真

时间:2014-04-26 06:12:37

标签: laravel laravel-4

我为我的应用程序运行Laravel 4 ...我是新手。

我使用标准的内置身份验证创建了一个小应用程序,一切正常。

我有User.php模型和路径文件处理我的所有请求。

我想要做的是添加管理员,我在我的用户表中添加了一个名为'is_admin'的字段..它是1或0的整数。

我希望能做的事情如下:

if is_admin() {
    // Do stuff here if im an admin
}

任何人都可以帮助我实现我的目标......目前我所拥有的只是一个数据库专栏。

干杯,

2 个答案:

答案 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一样提到。