在Laravel 4中返回当前用户

时间:2013-09-01 15:10:12

标签: php laravel laravel-4

使用PHP和Laravel 4我在我的用户模型中有一个方法,如下所示,以检查管理员用户...

public function isAdmin()
{
    if(isset($this->user_role)  && $this->user_role === 'admin'){
        return true;
    }else{
        return false;
    }
}

当我在其他类或模型中调用此函数时,这不起作用。

为了获得理想的结果,我不得不这样做......

public function isAdmin()
{
    if(isset(Auth::user()->user_role)  && Auth::user()->user_role === 'admin'){
        return true;
    }else{
        return false;
    }
}

我正在尝试在我的管理控制器中访问此内容,如下所示,但它返回一个空的User对象而不是当前登录的用户对象...

public function __construct(User $user)
{
    $this->user = $user;
}

所以我的问题是如何让第一个版本工作?当我在另一个类中实例化User对象时,我需要以某种方式确保它具有当前登录用户的数据,但我不确定这样做的最佳方式...我知道这是基本的我只是一点点现在生锈可以使用帮助,谢谢

1 个答案:

答案 0 :(得分:14)

这将返回用户存储库 - 而不是当前登录的用户

public function __construct(User $user)

要在您的应用程序中访问当前登录的用户 - 只需执行

Auth::user()

(就像你的中间例子)

因此 - 检查用户是否是您应用程序中的管理员用户 - 只需执行

if (Auth::user()->isAdmin())
{
     // yes
}
else
{
     // no
}