laravel中返回视图(),返回响应() - > view()和abort()之间的差异

时间:2016-06-02 06:57:13

标签: php laravel laravel-4 laravel-5 laravel-5.1

假设我想从我的控制器方法返回404错误视图,我有这段代码。

try {

        file_get_contents('http://www.somewebsite.com');

    } 
catch (\Exception $e) {

        return view('errors.404'); // View::make('errors.404');

        // or                       

        return response()->view('errors.404'); // Response::view('errors.404');

        // or

        abort(404); // App::abort(404);

    }

每次我都会看到404的相同视图输出。这是我的问题。

view(),response() - > view()和abort()有什么区别?

它们的具体用例是什么?

2 个答案:

答案 0 :(得分:2)

view()只是response()->view()

的简写

response()->view()返回状态代码为200的指定视图,但您可以通过多种方式修改响应。例如,设置其他标头或其他状态代码,如301。

abort()抛出NotFoundHttpException或HttpException,并使Laravel查找名为views/errors中相应代码的视图,这样您就不必自己指定视图。

答案 1 :(得分:0)

当您使用view()或response() - > view()时,您的客户端收到的HTTP响应代码将为200即OK。当使用abort(404)时,代码将是404 NOT FOUND!