Laravel 如果用户是管理员,请选择所有记录
如何获取所有记录如果用户是admin,如果不是admin,则仅返回用户帖子。我已经试过了Laravel 如果用户是管理员,请选择所有记录,laravel,laravel-5,laravel-5.2,Laravel,Laravel 5,Laravel 5.2,如何获取所有记录如果用户是admin,如果不是admin,则仅返回用户帖子。我已经试过了 Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get(); 提前感谢您可能希望返回经过身份验证的用户,如 $isAdmin = false; if (Auth::check()) { $user = Auth::user(); if ($user->getName
Where('idUser',"=",$IdCurrentUser)->orWhere('Administrador','=','Administrador')->get();
提前感谢您可能希望返回经过身份验证的用户,如
$isAdmin = false;
if (Auth::check())
{
$user = Auth::user();
if ($user->getName() == 'Administrador')
{
$isAdmin = true;
}
}
然后添加where
如果不是管理员:
if (!$isAdmin)
{
$postCollection->where('id', '=', $user->getId());
}
编辑:
还要检查如何使用实际角色进行管理检查,而不是简单的名称比较(这是正确的方法)。您可能希望返回经过身份验证的用户,如
$isAdmin = false;
if (Auth::check())
{
$user = Auth::user();
if ($user->getName() == 'Administrador')
{
$isAdmin = true;
}
}
然后添加where
如果不是管理员:
if (!$isAdmin)
{
$postCollection->where('id', '=', $user->getId());
}
编辑:
还要检查如何使用实际角色进行管理检查,而不是简单的名称比较(这是正确的方法)。如何检查
用户不是管理部分取决于您自己,最有可能是使用Auth::user(),但关键是,仅当当前用户不是管理员时,才在mainwhere
中应用$query->where
->where(function($query) use ($IdCurrentUser) {
if (/* user is not an admin */) {
$query->where('idUser',"=",$IdCurrentUse);
}
})->get();
如何检查用户不是管理员
部分取决于您,最有可能是使用Auth::user(),但关键是只有当前用户不是管理员时,才在main中应用$query->where
->where(function($query) use ($IdCurrentUser) {
if (/* user is not an admin */) {
$query->where('idUser',"=",$IdCurrentUse);
}
})->get();
您如何知道用户是否是管理员?是因为他们的名称
设置为管理员
?哪个用户?你是指登录用户吗?登录用户,$enum
?如果作为角色管理员显示所有用户的记录,如果是普通用户只显示他们自己的记录$enum是当前用户的id,我会更新帖子以删除一些混淆的代码。你如何知道该用户是否是管理员?是因为他们的名称
设置为管理员
?哪个用户?您是指登录用户吗?$enum
中的内容?登录用户,如果作为角色管理员显示所有用户的记录,如果是普通用户,则仅显示其自己的记录$enum是当前用户的id,我更新了帖子,删除了查询中需要的一些混淆的代码。如果admin等于true,则显示所有其他内容显示他们的one记录。使用一个独特的查询来实现这一点,您正在谈论“posts”。对我来说,不太可能将用户ID和名称存储在“posts”表中。然而,如果是这样的话,那么——也只有到那时——你才能做到。否则需要查询两次,或者将users表与post表联接,这对于很多行来说效率很低。Oput还有一种方法可以在查询中创建我想要的两个查询验证如果admin等于true,则显示所有其他显示他们的一条记录。使用一个独特的查询来实现这一点,您正在谈论“posts”。对我来说,不太可能将用户ID和名称存储在“posts”表中。然而,如果是这样的话,那么——也只有到那时——你才能做到。否则需要查询两次,或者将users表与post表联接,这对于许多行来说效率很低?我尝试`$post=post::Where(函数($query)use($IdCurrentUser){if(/*用户不是管理员*/){$query->Where('idUser',“=”,$IdCurrentUse);}}}->get();`但是我得到一个错误,你应该自己指定if()条件。我如何使用这个解决方案?我尝试`$post=post::Where(函数($query)use($IdCurrentUser){if(/*用户不是管理员*/){$query->Where('idUser',“=”,$IdCurrentUse);}}}->get();`但是我得到一个错误,你应该自己指定if()条件。