Laravel 5如果用户是管理员,请选择所有记录

时间:2016-09-01 22:46:02

标签: laravel laravel-5 laravel-5.2

如果用户是管理员,我如何获得所有记录,如果不是,则管理员仅返回用户帖子。我已经尝试了

Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get();

提前致谢

2 个答案:

答案 0 :(得分:1)

您可能希望返回经过身份验证的用户,例如

$isAdmin = false;
if (Auth::check())
{
  $user = Auth::user();
  if ($user->getName() == 'Administrador')
  {
    $isAdmin = true;
  }
}

然后添加where,如果不是admin:

if (!$isAdmin)
{
  $postCollection->where('id', '=', $user->getId());
}

编辑:

同时检查here关于如何使用实际角色进行管理检查而不是简单的名称比较(这是正确的方法)。

答案 1 :(得分:1)

由您决定如何检查user is not an admin部分,最有可能使用Auth :: user(),但重点是您只在当前用户的$query->where内部应用where在不是管理员

->where(function($query) use ($IdCurrentUser) {
    if (/* user is not an admin */) {
        $query->where('idUser',"=",$IdCurrentUse);
    }
})->get();