当我在 4.2 中编码时,我有时会使用 missingMethod 来处理某些我可能提前不知道确切 url 的情况。我今天注意到,从 5.0 开始,这部分文档就消失了。
AFAIK,这在 Laravel 5.1 上运行,但他们仍然删除了上面的文档。
Laravel一直在改进做事的方式。此功能现在是否被阻止或过时?当然,他们没有无缘无故地将其从文档中删除。
如果有更新的方法来处理这个问题,我可以得到 API 或代码段的链接吗?
隐式控制器使用了缺失的方法,隐式控制器自 Laravel 5.2 以来已被正式弃用,但在此之前很久就已经发布了反对使用它们的建议。与隐式控制器不同,显式路由定义是明确且自文档化的。
我不确定您如何或为什么通过missingMethod
处理未注册的路由,但我不推荐它。我从来没有遇到过需要使用它的情况。如果需要处理缺少的路由路径,则应通过 App'Exceptions'Handler
类的 render
方法执行此操作。您可以按照以下思路执行一些操作:
use Symfony'Component'HttpKernel'Exception'NotFoundHttpException;
...
public function render($request, Exception $e)
{
if ($e instanceof NotFoundHttpException) {
// Do whatever you like when a route is not found
// You can return any response you like
}
return parent::render($request, $e);
}
您可以在Laravel文档中阅读有关异常处理的更多信息