我为系统中的所有错误创建了一个自定义错误页面。我修改了render
中的app\Exceptions\Handler.php
函数:
if (Auth::user() != null && $exception->getMessage() != 'Unauthenticated.') { // user is logged in
$var1 = Var1::where('user_id', Auth::user()->id)->first();
$var2 = Var2::where('user_id', Auth::user()->id)->first();
if ($var1 != null) {
return response()->view('errors.general', ['var1Id' => $var1->id]);
} else if ($var2 != null) {
return response()->view('errors.general', ['var2Id' => $var2->id]);
} else {
return response()->view('errors.general');
}
} else { // user is not logged in
return response()->view('errors.general');
}
当我在浏览器http://123.456.78.9/route/1/to/spelling中输入正确的路线时,它会转到相应的页面。但是当我输入一个不正确的http://123.456.78.9/route/1/to/spelline时,它只会在浏览器控制台中返回一个没有错误的空白页。
我在dd('123')
函数的第一行放了一个render
,但它没有显示。所以它意味着,它不会去那里。但是哪里?为什么是空白页?
在此问题之前,我有一个前一个,它在浏览器中返回了一个HTTP ERROR 500,而不是我做的自定义错误页面。我通过修改app/Http/Kernel.php
来修复它。我感动了:
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
从'web'
到protected $middleware
。
我还原了一切,我仍然得到了空白页。你对此有什么想法吗?
编辑1:
我的routes/web.php
看起来像这样:
Route::group(['middleware' => 'auth'], function() {
Route::group(['prefix' => 'route/{companyId}'], function () {
Route::group(['prefix' => 'to'], function() {
Route::get('spelling', 'MyController@spelling')->name('spelling.sample');
});
});
});
它适用于拼写错误或不正确的某些路由。我不确定是什么原因引起的。请发送帮助。
编辑2: 我刚刚发现,当我输入不正确的路径(不同的控制器)时,它工作正常。只是这个特定的控制器只有这个问题。