不使用 $request 变量的数据 If 语句

If statment on Data without using $request variable

我正在尝试检查用户是否是管理员,以便我可以限制其他用户 URL,到目前为止我试过此代码:

 public function Adminp(){
    $data = ['LoggedUserInfo' =>Utilisateurs::where('id','=',session('LoggedUser'))->first() ];
    $utilisateurs = Utilisateurs::all();
    $utilisateur->role = $_GET['role'];
    if($utilisateur->role == 'Admin'){
        return view('Admin.admin-dashboard', $data, compact('utilisateurs'));
    }
    else{
        return abort(404);
     }
}

我得到的都是错误

$utilisateurs = Utilisateurs::all();

这将 return 你的数组 Utilisateurs 并且在下一行你试图获得角色 属性 永远不会存在于该数组中你只需要获得一个用户不是所有用户的数组。

我只是在猜测你在做什么。我假设你只是想看看你从数据库中检索到的用户是否具有你正在寻找的角色......你应该为此使用身份验证系统和中间件来进行过滤,但是

public function Adminp()
{
    $user = Utilisateurs::findOrFail(session('LoggedUser'));

    if ($user->role == 'Admin') {
        return view('Admin.admin-dashboard', [
            'LoggedUserInfo' => $user,
            'utilisateurs' => Utilisateurs::all(),
        ]);
    }

    return abort(404);
}

让我再次强调这一点,您应该使用身份验证系统和中间件来进行过滤,而不是重新发明轮子。