Laravel控制器::缺少方法在5.0+中不鼓励使用


Laravel Controller::missingMethod discouraged in 5.0+?

当我在 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文档中阅读有关异常处理的更多信息