在动作控制器Laravel中定义响应的最佳实践

时间:2017-10-18 12:55:07

标签: laravel

我在PostController

中有一个方法
class PostController extends Controller {

    public function index() {
        $posts = Post::all();
        return response($posts);   
    }
}

双向:

class PostController extends Controller {

    public function index() {
        $posts = Post::all();
        return $posts;   
    }
}

两者都工作正常但哪种方式更好更正确?

2 个答案:

答案 0 :(得分:1)

我个人更喜欢这个版本:

return \Response::json($data);

因为它清楚地表明响应是实际的json数据。

只需确保项目中的新用户可以理解您的代码。

如果您正在编写一个API项目,其中所有内容总是在json中返回,只需返回模型,因为您不必让读者了解它的JSON,因为所有内容都在JSON中。

另一方面,如果它是某种混合项目(某些路由返回视图,JSON,XML,等等),尽量使这个特定的路由返回JSON数据并且没有任何东西。其他

同样如评论中所述,保持一致。越短越好。更好的是易于阅读并提供足够信息的内容。

答案 1 :(得分:0)

实际上并不重要......它取决于你的愿望和一致性。

return Response::json($model);
//or
return response()->json($model);
//or
return $model;

它为您提供相同的输出..但如果您使用response,则可以设置状态代码。大部分时间,这个响应的东西都用在API项目中。