質問: Laravelのアノテーションの書き方について質問です。 Controllerに下記のようなメソッドを定義した際、アノテーションはどうなりますか? Laravelでは、下記の場合自動的にJSONとなっているようです。 `@JSON`が正解でしょうか? ``` /** * Display the specified resource. * * @param \Illuminate\Http\Request * @return \Illuminate\Http\Response // ←この部分です */ public function show(Request $request) { return DB::table('photo')->get(); } ```
回答: PHPDocの書き方を調べれば良いと思います。 ドキュメントによると `@JSON` というアノテーションはないです。 ``` /** * @return 型名 */ ``` と記述する必要があります。 今回の場合ですが、私の手元のLaravel5.6のソースでは `DB::table('photo')->get()` つまり `Illuminate\Database\Query\Builder\get()` メソッドは ``` /** * Execute the query as a "select" statement. * * @param array $columns * @return \Illuminate\Support\Collection */ public function get($columns = ['*']) { return collect($this->onceWithColumns($columns, function () { return $this->processor->processSelect($this, $this->runSelect()); })); } ``` このようになっているようですから呼び出し元の返り値も `@return \Illuminate\Support\Collection` となるはずです。