2017-10-18 41 views
0

響應我有內部PostController最佳實踐來定義動作控制器Laravel

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

都工作正常,但哪種方式更好,更正確?因爲它清楚地表明響應是實際的JSON數據

return \Response::json($data); 

+0

根本沒關係。只要你在整個項目中保持一致。 – ntzm

回答

1

我personnaly喜歡這個版本。

只要確保您的代碼對您的項目中的新人可以理解。

如果您正在編寫一個API項目,其中的所有內容總是以json的形式返回,那麼只需返回模型,因爲您不必讓讀者瞭解它是JSON,因爲所有東西都在JSON中。另一方面,如果它是某種混合項目(某些路由返回視圖,JSON,XML等等),儘可能讓這個特定的路由返回JSON數據,而不是其他任何東西。

也如評論中所述,保持一致。越短越好。閱讀起來很簡單,並提供關於發生的事情的足夠信息。

+1

我同意這個答案,但我更喜歡'return response() - > json($ data);'。這樣你就不需要導入另一個班級,仍然有他們的好處 – Lloople

0

不要緊,居然..它取決於你的慾望和一致性..

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

它給你同樣的output..but如果使用response,您可以設置狀態碼。大部分時間,這個響應的東西都用在API項目中。