在Laravel 5.5.x中,捕捉任何未注册路线的正确方法是什么
我看到laravel有一个在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发生时执行某
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');