使用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对象时,我需要以某种方式确保它具有当前登录用户的数据,但我不确定这样做的最佳方式...我知道这是基本的我只是一点点现在生锈可以使用帮助,谢谢
答案 0 :(得分:14)
这将返回用户存储库 - 而不是当前登录的用户
public function __construct(User $user)
要在您的应用程序中访问当前登录的用户 - 只需执行
Auth::user()
(就像你的中间例子)
因此 - 检查用户是否是您应用程序中的管理员用户 - 只需执行
if (Auth::user()->isAdmin())
{
// yes
}
else
{
// no
}