Laravel 新路由“Missing”方法
发布于 作者: Paul Redmond
随着 Laravel v8.26.0 的发布,路由器新增了一个 missing()
方法,提供了一种便捷的方式来处理使用路由模型绑定时遇到的缺失记录。
今天发布的 Laravel 版本中新增了 Route::()…->missing() 方法。由 @hotmeteor 贡献... 可以在此处查看文档! https://t.co/gdhOAeJ3nS
— Taylor Otwell (@taylorotwell) 2021 年 2 月 2 日
默认情况下,如果有人尝试访问不存在的记录,路由模型绑定将返回 404
。目前,您需要进行一些自定义操作才能检查并相应地处理这种情况。随着 missing()
方法的添加,此场景变得更加简单。
Route::get('/locations/{location:slug}', [LocationsController::class, 'show']) ->name('locations.view') ->missing(function (Request $request) { return Redirect::route('locations.index'); });
missing()
方法与路由缓存配合使用,可以简化当路由模型绑定引发 ModelNotFound 异常时您希望进行一些自定义处理的场景。
正是像这样的功能使得 Laravel 使用起来如此令人愉快。衷心感谢 Adam Campbell 为此功能做出的贡献!
了解更多
此方法在路由文档的 自定义缺失模型行为 部分有介绍。如果您想了解更多有关此功能实现的信息,请查看 拉取请求 #36035。