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

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

如何获取所有记录如果用户是admin,如果不是admin,则仅返回用户帖子。我已经试过了

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(),但关键是,仅当当前用户不是管理员时,才在main
where
中应用
$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()条件。