如何在web.php中定义路由以在Laravel中显示404视图?

时间:2018-12-24 05:18:36

标签: php laravel laravel-5.7

我的web.php中有多个发布请求。如果任何用户手动编写URL,则他/她会收到错误消息,因为他/她的http方法错误。如果他们尝试这样做,我想手动向他们发送错误404页面。

我想做的就是这个

Route::post('/submit','Controller@apply');
Route::get('/submit', ); //do something here to return 404 page

2 个答案:

答案 0 :(得分:2)

Route::get('/submit', function () { return abort(404); });

答案 1 :(得分:1)

您可以在laravel提供的异常处理程序中处理此错误,然后将其发送到404视图。您可以访问 App \ Exceptions \ Handler 。在这里,如果您只想使用 report方法报告异常,但是要显示404视图,则需要使用 render方法。在渲染中,我们可以将异常转换为http响应。在这里,您可以使用使用Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException 未找到的异常并返回404。还可以使用 abort 助手在处理程序中处理异常。例如

 abort(404); //To create an exception (if manually creating exception)

//Hnadling exception in handler
public function render($request, Exception $e) {
    if ($e instanceof ModelNotFoundException) {
        return response()->view('errors.404-view', [], 500);
    }
    return parent::render($request, $e);
}

在这里您可以使用 resources / views / errors / 404.blade.php 。 有关错误处理的更多信息,请使用this 希望这会有所帮助