質問: Laravelでスマホアプリ向けてのサーバサイドを開発しています。 routeからControllerを呼び出した場合に、Controller内のメソッドの引数について教えてください。 例えば、 route内では ``` /api/show/{items} /api/update/{items} ``` Controller内では ``` public function show(Item $item) public function update(Request $request, Item $item) ``` という感じで引数がかわります。 Passportを利用した場合に ``` | | POST | oauth/clients | | \Laravel\Passport\Http\Controllers\ClientController@store | web,auth | | | GET|HEAD | oauth/clients | | \Laravel\Passport\Http\Controllers\ClientController@forUser | web,auth | | | DELETE | oauth/clients/{client_id} | | \Laravel\Passport\Http\Controllers\ClientController@destroy | web,auth | | | PUT | oauth/clients/{client_id} | | \Laravel\Passport\Http\Controllers\ClientController@update | web,auth | | | POST | oauth/personal-access-tokens | | \Laravel\Passport\Http\Controllers\PersonalAccessTokenController@store | web,auth | ・・・ ``` など多くのルートが出てきます。これらのControllerを定義する場合に引数についてどう考えればよいか、以下の質問も含めてご教授下さい。 (1)route(やmodel)で任意に変更できるのでしょうか? (2)変更できる場合はrouteで{}で定義した値が順番に引数になると思ってよいでしょうか? (3)Controllerの引数にRequestの有無があるかないかは個別にControllerを作成した場合は、routeで指定したPOST,GET,PUTによって自動で引数に定義できるとか法則はあるのでしょうか?(どのように引数が決められるか、設定できるかを教えてください) よろしくお願いします。
回答: ルート定義の引数に関しては一旦このあたりを読み進めると理解が深まるかと思います 1、2に関しては以下のルートパラメーターを参照してください。 Laravel 5.4 ルーティング 3は一括でルート定義を設定できるリソースコントローラのことだと思うので、以下のリソースコントローラを参照してください。「リソースコントローラーにより処理されるアクション」に作成される一覧があります。 Route::resourceで作成した変数名などは、「リソースルートパラメータの命名」でのparameters指定で変更できます。 Laravel 5.4 コントローラ