🐘
Laravel のリソースコントローラについてのまとめ
状況
過去,「リソースコントローラ is 何?」状態だったので状態自力で扱うためにまとめた.
リソースコントローラとは
リソースコントローラとは,Laravel で CRUD 処理を行うために使用するコントローラ.リソースコントローラには,CRUD 処理を行うためのメソッドが用意されている.
リソースコントローラに用意されているメソッド一覧
下記のようにリソースコントローラには,CRUD 処理を行うためのメソッドが用意されている.それぞれのメソッドには役割が決められており,この通りに実装することで CRUD 処理を動かすことができる.
Laravel の基本の形となっているため,まずはこの形で実装を進めるのがオススメ.
メソッド | 役割 |
---|---|
index | データの一覧を表示する |
create | データの作成画面を表示する |
store | データの作成処理を行う |
show | データの詳細画面を表示する |
edit | データの編集画面を表示する |
update | データの更新処理を行う |
destroy | データの削除処理を行う |
リソースコントローラの作成
コマンド実行時にオプションを付けることでリソースコントローラを作成することができる.
php artisan make:controller PostController --resource
リソースコントローラのルーティング
リソースコントローラを使用する場合,下記のルーティングを定義することで CRUD 処理のルーティングがすべて自動的に行われる.
Route::resource('posts', PostController::class);
上記のコードを書くことで動作するようになるルーティング
php artisan route:list --path=posts
# 実行結果
+--------+-----------+---------------------+----------------+-------------------------------------------------+-----------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+---------------------+----------------+-------------------------------------------------+-----------------+
| | GET|HEAD | posts | posts.index | App\Http\Controllers\PostController@index | web |
| | POST | posts | posts.store | App\Http\Controllers\PostController@store | web |
| | GET|HEAD | posts/create | posts.create | App\Http\Controllers\PostController@create | web |
| | GET|HEAD | posts/{post} | posts.show | App\Http\Controllers\PostController@show | web |
| | PUT|PATCH | posts/{post} | posts.update | App\Http\Controllers\PostController@update | web |
| | DELETE | posts/{post} | posts.destroy | App\Http\Controllers\PostController@destroy | web |
| | GET|HEAD | posts/{post}/edit | posts.edit | App\Http\Controllers\PostController@edit | web |
+--------+-----------+---------------------+----------------+-------------------------------------------------+-----------------+
まとめ
リソースコントローラは Laravel の基本形であり,CRUD 処理を簡単かつ効率的に行うことができる.
以上だ( `・ω・)b
Discussion