【Laravel】ResourceControllerで使用するアクションを限定する!
PHPバージョン:7.1.14
Laravelバージョン:5.7.9
今回はResourceControllerで使用するアクションを限定します!
ResourceControllerはデフォルトで
index, create, store, show, edit, update, destroy
と7つのメソッドを実装します!
が、例えばDBを更新する
store, update, destroyといったメソッドを使わせたくない時や、
index, create, show, editといった
ビューの表示を担当するメソッドは必要ないといった時、
Routeにてアクションを制限することができます!
onlyオプション
ResourceControllerアクションの制限には2つ用意されています。
まずはonlyオプションから。
<?php Route::resource('articles', 'ResController', ['only' => [ 'index', 'show' ]]);
routes>web.php
第3引数に配列で使用可能アクションを指定することができます。
許可されていないアクションを実行すると
404エラーもしくはMethodNotAllowedHttpExceptionエラーとなります。
exceptオプション
続いてexceptオプションです。
<?php Route::resource('articles', 'ResController', ['except' => [ 'index', 'show' ]]);
routes>web.php
exceptオプションは配列で指定したアクションを禁止します。
apiResource
Route::resourceメソッドの代わりに、
Route::apiResourceというメソッドがあります。
作成ページを表示するcreateと
編集ページを表示するeditの2メソッドの使用を制限します。
<?php Route::apiResource('articles', 'ResController');
routes>web.php
今回はここまでです、ありがとうございました〜!