【问题标题】:How to show the 404 page?如何显示 404 页面?
【发布时间】:2015-08-15 22:41:12
【问题描述】:

我想在 Laravel 5 中显示 404 页面,同时 MethodNotAllowedHttpException 抛出。

有人可以在这方面帮助我吗?

【问题讨论】:

    标签: php exception laravel-5


    【解决方案1】:

    将此添加到app/Exceptions/Handler.php

    public function render($request, Exception $e) 
    {
        if ($e instanceof MethodNotAllowedHttpException) 
        {
            abort(404);
        }
        return parent::render($request, $e);
    }
    

    然后编辑resource/views/errors/404.blade.php 以个性化页面。

    【讨论】:

    • 如果您不想使用完整的命名空间,请记住在文件开头添加use \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
    【解决方案2】:

    简单:您只需在 resources/views/errors/404.blade.php 创建一个模板。

    如果您愿意,可以为其他 HTTP 状态代码创建视图,例如用于禁止异常等的 403.blade.php

    【讨论】:

    • OP 询问的是在抛出特定错误时如何显示 404 页面,而不是如何为 404 错误本身编辑模板。
    【解决方案3】:

    我正在开发 Laravel 5.2,here 给出的答案对我有用。

    需要修改app/Exceptions/Handler.php中的render方法。

        public function render($request, Exception $e)
        {
            if ($e instanceof \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException) 
            {
                return response(view('errors.404'), 404);
            }
    
            return parent::render($request, $e);
        }
    

    abort(404) 对我不起作用。看起来这个方法在 Laravel 5 中被删除了。

    【讨论】:

      【解决方案4】:

      这是一个 405 错误,最简单的方法是在 resources/views/errors/405.blade.php. 中创建一个新视图。

      如果您需要对显示的内容进行精细控制,则必须使用 Handler.php 来修改返回的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-27
        • 1970-01-01
        • 1970-01-01
        • 2015-06-10
        • 2021-10-04
        • 2011-02-08
        • 2013-04-15
        相关资源
        最近更新 更多