Laravel リソースコントローラー
CRUD(create, read, update, deleteの各アクション完備)
php artisan make:controller HiyokoController - -resource
Controller内に作成されるメソッド
index, create, store($request), show($id), edit($id), update($request, $id), destroy($id)
PUT, PATCH, DELETEを使う際は、フォームに__methodパラメータを設定する必要がある?
作成後にルートを登録する
Route::resource(‘URL’, ‘Controller名’);
これでindex, create, store, show, edit, update, destroy全てのメソッドのルート設定が完了
リソースモデルの指定
php artisan make:controller HiyokoController - -resource - -model=Hiyoko
もともとモデルが作成されている必要がある?
index, create, store, show, edit, update, destroy、指定して使わせないこともできる。
Route::resource(‘hiyokos’, ‘HiyokoController’)->only ([
‘index’,’show’,
]);
Route::resource(‘hiyokos’, ‘HiyokoController’)->except([
‘create’, ‘store’, ‘update’, ‘destroy’
]);
onlyからexceptどちらかで大丈夫だよね。
APIリソースルート
ゲーム制作で使うのは、基本的にAPIでしょう。
どうやってweb.phpではなくapi.phpを使う?ディレクトリ「/API」を作ってその下にAPI用のControllerを置いて、使いたい。
php artisan make:controller API/HiyokoController - - api
GETで表示して入力待ちのようなメソッドは必要ない。(createやeditなど。storeやupdateは必要。)
Route::apiResource(‘hiyokos’, ‘HiyokoController’);
リソースコントローラーのデフォルトルート(index, create, store, show, edit, update, destroy)以外にルートを登録したい時は、
Route::resourceよりも前にRoute::getやRoute::postで設定する。
ルートキャッシュを登録しておくと、ルート登録が100倍早くなる。
ルートキャッシュを行うためには、ルートファイルにクロージャを書かないことが条件。
php artisan route:cache