Jas*_*vis 7 php laravel laravel-4
使用PHP和Laravel 4我在我的用户模型中有一个方法,如下所示,以检查管理员用户...
public function isAdmin()
{
if(isset($this->user_role) && $this->user_role === 'admin'){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在其他类或模型中调用此函数时,这不起作用.
为了获得理想的结果,我必须这样做而不是......
public function isAdmin()
{
if(isset(Auth::user()->user_role) && Auth::user()->user_role === 'admin'){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图在我的管理控制器中访问这个,如下所示,但它返回一个空的User对象而不是当前登录的用户对象...
public function __construct(User $user)
{
$this->user = $user;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何让第一个版本工作?当我在另一个类中实例化User对象时,我需要以某种方式确保它具有当前登录用户的数据,但我不确定这样做的最佳方式...我知道这是基本的我只是一点点现在生锈可以使用帮助,谢谢
Lau*_*nce 14
这将返回用户存储库 - 而不是当前登录的用户
public function __construct(User $user)
Run Code Online (Sandbox Code Playgroud)
要在您的应用程序中随时访问当前登录的用户 - 只需这样做
Auth::user()
Run Code Online (Sandbox Code Playgroud)
(就像你的中间例子)
因此 - 在您的应用程序中检查用户是否是管理员用户 - 只需这样做
if (Auth::user()->isAdmin())
{
// yes
}
else
{
// no
}
Run Code Online (Sandbox Code Playgroud)