ひよこメモ

備忘ブログ Ruby, Rails, AWS, html5, css3, javascript, vim,

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