错误的路由返回空白页而不是自定义错误页

时间:2017-04-19 04:13:21

标签: php laravel routes laravel-5.3 custom-error-pages

我为系统中的所有错误创建了一个自定义错误页面。我修改了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: 我刚刚发现,当我输入不正确的路径(不同的控制器)时,它工作正常。只是这个特定的控制器只有这个问题。

0 个答案:

没有答案