はじめに
アプリケーションを作成していく中で必要な考え方として
CRUD「クラッド」という考え方があります。以下の頭文字を取ってCRUDと呼ばれています。
C | create | 新規作成 |
---|---|---|
R | read | 表示 |
U | update | 更新 |
D | delete | 削除 |
リソースコントローラーは、CRUDを細かく以下のように7つに分けてURIやルート名などを自動で生成してくれるという機能になります。
動詞 | URI | メソッド名 | ルート名 | 名称 |
---|---|---|---|---|
GET | /photos | index | photos.index | 一覧の表示 |
GET | /photos/create | create | photos.create | 新規作成 |
POST | /photos | store | photos.store | 保存 |
GET | /photos/{photo} | show | photos.show | 表示 |
GET | /photos/{photo}/edit | edit | photos.edit | 編集 |
PUT/PATCH | /photos/{photo} | update | photos.update | 更新 |
DELETE | /photos/{photo} | destroy | photos.destroy | 削除 |
Laravelリソースルーティングは、通常の作成、読み取り、更新、削除(”CRUD”)ルートを1行のコードでコントローラに割り当てることができます。
コントローラを作成する方法
php artisan make:controller PhotoController --resource
コントローラーを作成する時にオプションとして--resource
というオプションを入力すると、自動的に必要なメソッドを作成してくれます。自動的に作成されるメソッドの表は先ほども表記しましたが以下になります。
リソースコントローラーの表
動詞 | URI | メソッド名 | ルート名 | 名称 |
---|---|---|---|---|
GET | /photos | index | photos.index | 一覧の表示 |
GET | /photos/create | create | photos.create | 新規作成 |
POST | /photos | store | photos.store | 保存 |
GET | /photos/{photo} | show | photos.show | 表示 |
GET | /photos/{photo}/edit | edit | photos.edit | 編集 |
PUT/PATCH | /photos/{photo} | update | photos.update | 更新 |
DELETE | /photos/{photo} | destroy | photos.destroy | 削除 |
ルートは一行で記述できる
リソースコントローラーを作成した後にルート側も設定する必要があり、先ほどもお伝えしましたがルートを以下のように1行で書くことができます。
use App\Http\Controllers\PhotoController;
Route::resource('photos', PhotoController::class);
以上
Laravelではリソースコントローラと表記されていています。
一般的にはRestfulと呼ばれています。
リソースコントローラーを使いこなせればアプリケーションを簡単に素早く的確に作成できるので興味がある方は使ってみてください。