如果用户是管理员,我如何获得所有记录,如果不是,则管理员仅返回用户帖子。我已经尝试了
Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get();
提前致谢
答案 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();