我在为我的应用程序运行Laravel 4 ..。我是个新手。
我使用内置于身份验证中的标准创建了一个小应用程序,一切都很好。
我有User.php模型和路由文件来处理我的所有请求。
我想要做的是添加管理员,我在用户表中添加了一个字段,名为“is_admin”。它是1或0的整数。
我想要做的事情如下所示
if is_admin() {
// Do stuff here if im an admin
}有人能帮我解决这个问题吗?我现在只有一个数据库列。
干杯,
发布于 2014-04-26 06:17:02
实际上,您可以检查用户是否是管理员,而不使用以下内容:
if(Auth::user()->is_admin) {
//...
}因为Auth::user()返回当前登录的用户,并且is_admin字段在users表中可用,所以如果用户登录了,那么您可以通过检查登录用户模型的Auth::user()->is_admin属性来检查。如果用户是admin,则值为1,这将是true,对于0,结果在if条件下为false。
如果您想在用户模型中添加一个方法,那么您可以尝试这样做:
public function isAdmin()
{
return $this->is_admin;
}所以你可以检查一下:
$user = User::find(1);
if($user->isAdmin()) {
//...
}发布于 2014-04-26 06:17:47
$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。
如果您已经登录,并且使用了Laravel Auth,您就可以像@狼人提到的那样做了。
https://stackoverflow.com/questions/23307368
复制相似问题