Laravel Controller :: missingMethod不鼓励5.0+?

时间:2016-02-15 17:03:59

标签: php laravel laravel-5

当我在4.2中进行编码时,我有时会使用missingMethod来处理某些我可能不知道确切网址的情况。我今天注意到,自5.0以来,documentation的这一部分已经消失了。

AFAIK,这个功能在Laravel 5.1上运行,但他们仍然删除了文档。

Laravel总是在改进工作方式。现在这个功能是不鼓励还是过时了?当然,他们没有理由将其从文档中删除。

如果有更新的方式我应该处理这个问题,我可以获得API或代码段的链接吗?

1 个答案:

答案 0 :(得分:1)

缺少的方法与Implicit Controllers一起使用,已officially deprecated since Laravel 5.2,但反对使用它们的建议为issued long before that。与隐式控制器不同,显式路由定义是明确的并且是自我记录的。

我不确定您是通过missingMethod处理未注册路由的方式或原因,但我不建议这样做。我从未遇到过需要使用它的情况。如果您需要处理丢失的路径路径,则应通过render类的App\Exceptions\Handler方法执行此操作。你可以沿着这些方向做点什么:

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 Documentation

中详细了解异常处理