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

定义行动中响应控制器Laravel的最佳实践,laravel,Laravel,我在PostController class PostController extends Controller { public function index() { $posts = Post::all(); return response($posts); } } 双向: class PostController extends Controller { public function index() {

我在
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;   
    }
}

两者都很好,但哪种方式更好更正确?

我个人更喜欢这个版本:

return \Response::json($data);
因为它清楚地表明响应是实际的json数据

只需确保您的代码可以被项目中的新手理解即可

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

另一方面,如果它是某种类型的混合项目(一些路由返回视图、JSON、XML等等),请尝试尽可能明显地使此特定路由返回JSON数据,而不返回任何其他内容


正如评论中所述,保持一致。越短越好。更好的方法是简单易读,并提供足够的信息来了解正在发生的事情。

事实上这并不重要。。这取决于你的愿望和一致性

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

它提供相同的输出。但是如果使用
响应
,则可以设置状态代码。大多数情况下,这种响应是在API项目中使用的

没关系。我同意这个答案,但我更喜欢
returnresponse()->json($data)。这样,您就不需要导入另一个类,并且仍然可以享受它们的好处