Syd*_*ria 1 php laravel laravel-5
我在访问 route.php 中的 Auth::user() 时遇到问题。到目前为止,这是我所拥有的:
Route::group(['middleware' => 'auth'], function () {
if(Auth::user()->role == "manager"){
Route::get('/','ManagerController@index');
}
else if(Auth::user()->role == "rater"){
Route::get('/','RaterController@index');
}
});
Run Code Online (Sandbox Code Playgroud)
每当我尝试使用 Auth::user()->role 时,它都会给我这个错误“试图获取非对象的属性”
将您的代码更改为:
Route::group(['middleware' => 'auth'], function () {
if (Auth::check()) {
if(Auth::user()->role == "manager"){
Route::get('/','ManagerController@index');
}
else if(Auth::user()->role == "rater"){
Route::get('/','RaterController@index');
}
}
});
Run Code Online (Sandbox Code Playgroud)
因为如果当前用户还没有登录,他将不会有一个rolesoAuth::user()将返回null,因此访问role属性是不可能的。您需要首先检查用户是否使用 登录if (Auth::check())。
PS 检查路由文件中的身份验证是一种糟糕的做法,应该在controller. 希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
5621 次 |
| 最近记录: |