在Laravel 5.5.x中,捕捉任何未注册路线的正确方法是什么

在Laravel 5.5.x中,捕捉任何未注册路线的正确方法是什么,laravel,laravel-5,Laravel,Laravel 5,我看到laravel有一个Routes::any()方法,我很好奇如何创建一个路由“catcher”,它将捕获任何未注册的路由并返回404页面,我知道它类似于route:any('/',function(){abort(404)})接受我认为它不会是/,因为我已经注册为主页 我看到的所有示例都是在5.5发布时已经过时的2年前的 如果您只想自定义404页面的视图,那么就不需要“捕获”任何内容。在resources/views/errors/404.blade.php中 如果您想在404发生时执行某

我看到laravel有一个
Routes::any()
方法,我很好奇如何创建一个路由“catcher”,它将捕获任何未注册的路由并返回404页面,我知道它类似于
route:any('/',function(){abort(404)})接受我认为它不会是
/
,因为我已经注册为主页


我看到的所有示例都是在5.5发布时已经过时的2年前的

如果您只想自定义404页面的视图,那么就不需要“捕获”任何内容。在
resources/views/errors/404.blade.php

如果您想在404发生时执行某些操作,则可以使用
render
方法在中执行

您还可以使用来处理404:

class ExampleMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        if($response->getStatusCode() == 404) {
            // Handle 404
        }
    }
}
根据您的使用情况,可能更合适。

  • 在Laravel5.5中有一个备用url,当找不到该url的路由时将调用该url

    路由::任意({fallback}),函数(){

    dd(“这是回退功能”)

    }))

  • 或者,您也可以在旧版本(如5.4、5.3等)中尝试此功能

    路由::任意({all}),函数(){

    }))


你能解释一下你的最终目标是什么吗?为什么要捕获404请求?对于未定义的路由,Laravel将发出404请求。为什么不使用
ExceptionHandler
捕获异常并覆盖响应?@fubar您可以。这是我的回答。我错过什么了吗?不,你没有错过什么。我显然不能正确地阅读。我的错。那是不正确的,应该是
Route::fallback
而不是
Route::any
。我的答案怎么了,不起作用@mtinsley?
dd('This is fallback function');