Laravel路线模型绑定500错误

时间:2017-10-24 22:11:36

标签: laravel error-handling routing laravel-5.3

我有这样的路线

Route :: get('/ articles / {article}','ArticleController @ show');

一切正常但如果您将mydomain.com/articles/non-existent放在文章名称不存在的地方,我会收到内部错误。

为什么不返回404或如何让它返回404或如何处理内部错误以显示页面而不会弄乱404错误处理?

我目前在我的Exceptions / Handler.php

中有这个
public function render($request, Exception $exception)
{
    if ($this->isHttpException($exception)) {
        return response()->view('errors.404', [], 404);
    }else{
        return response()->view('errors.500', [], 500);
    }
}

即使只是正常的404错误,也会返回500页。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试找出它是什么类型的异常,因为isHttpException非常通用。同样在你的情况下它甚至不是NotFoundHttpException,因为它没有返回404.If你得到500肯定是因为errorException。

    //This will let you know if your dealing with 404 or not

    if($exception instanceof NotFoundHttpException)
    {
        return response()->view('front.missing', [], 404);
    }
    else 
    {

      return response()->view('errors.500', [], 500);

    }

答案 1 :(得分:0)

您应该在控制器上抛出异常。所以你可以看到404页面。

$article = Article::find(article_id); // or with slug
If(!$article){
    throw new NotFoundHttpException;
}