「CRUD(クラッド)って何それ?」という方は、ぜひLaravelを使う前におさえておきましょう。
効率的にルート設定とコントローラーを作成できるようになります。
わたしは40代でプログラミングをスタートしましたが、最初は「CRUDって何それ?」状態でした^^;
知ってみると、ものすごく便利な考え方です。
同じように感じている方向けに、分かりやすく解説していきますね。
CRUD(クラッド)って何それ?
まず最初にCRUDについて説明していきます。
CRUDとは、下記のステップの頭文字をとったもの。
Create | 作成 |
---|---|
Read | 読み出し |
Update | 更新 |
Delete | 削除 |
記事でもお問い合わせでも、作成・表示・更新・削除の4ステップが必要になりますよね。
CRUDとは、データを使ったシステムで共通して行う4つの処理を表現した言葉です。
LaravelにはCRUD(クラッド)を簡単に作れる機能がある
Laravelでは、CRUDの処理はコントローラーに記述していくことになります。
そのために「リソースコントローラー」という機能を準備してくれています。
新たにコントローラーを作るとき、最後に–resourceを付けることで、利用できます。
上記を実行すると、app/HTTP/Controllers の中に、最初からCRUD用に7個のメソッドが入ったコントローラーファイルができます。
すべて入れると場所を取りすぎちゃうので、最初のほうだけスクショを貼っておきますね。
Laravelの7個のCRUD用メソッド
「あれ、でもCRUDって4個だよね?なぜ7個なの?」と思ったあなた、鋭い!
CRUDは4個なのですが、この処理を実行するには7個のステップが必要になってくるので、7個あるのです。
LaravelのCRUD用の7個のメソッドと用途をまとめたのが、次の表です。
index | 一覧表示画面用 |
---|---|
create | 新規作成用 |
store | createで作成したものを保存する用 |
show | 保存したデータを個別に確認するページ用 |
edit | 保存したデータを更新する用 |
update | editで更新したものを保存する用 |
destroy | データを削除する用 |
上記のメソッドを使うと、次のような処理が可能になります。
- 新規作成画面で、フォームを使って新たに記事投稿(create と storeを利用)
- 一覧画面で、すべてのデータを確認する(indexを利用)
- 詳細を見たいときには、個別のページを確認する(showを利用)
- 投稿した記事を変更したい場合は、記事変更画面から更新する(editとupdateを利用)
- 投稿した記事を削除したい場合には、削除ボタンをクリックする(destroyを利用)
なお、各メソッドへのコードは自分で入れてかねばなりません。
そこまでLaravelがやってくれたら、もはやプログラマの出番がなくなっちゃうし^^;
CRUD用のルート設定も簡単にできる
なおリソースコントローラーを作ると、ルート設定も簡単にできちゃいます。
7個のメソッドのルートが、これ1行でOK。
1 |
Route::resource('/test', 'TestController'); |
使用しないルート設定の除外方法
1 |
Route::resource('/text', 'TestController', ['except' => ['index','show']]); |
あるいはonlyを使う手もあり。
onlyの後のメソッドのルート設定だけ使えるようになります。
リソースコントローラー使用時のURL・ルート名・メソッド
リソースコントローラーにより作成されたルート設定を使う場合、URLやルート名はどうするのか。
たとえば次のルート設定の場合。
1 |
Route::resource('/test', 'TestController'); |
下記の表のようになります。
【リソースコントローラーを使う場合のURL・ルート名・メソッド】
アクション | URL | ルート名 | メソッド |
index | /tests | tests.index | GET |
create | /tests/create | tests.create | GET |
store | /tests | tests.store | POST |
show | /tests/{test} | tests.show | GET |
edit | /tests/{test}/edit | tests.edit | GET |
update | /tests/{test} | tests.update | PUT/PATCH |
destroy | /tests/{test} | tests.destroy | DELETE |
なお次のコマンドを入力すると、随時、利用可能なルートリストが表示されます。
1 |
php artisan route:list |
なお、上記の表で「メソッド」列があり、GET, POSTなどの単語が並んでいます。
ちょっとわかりにくいので、下記に補足説明を入れておきますね。
「なにこれ?」と感じたらお読みください。
メソッドについて補足説明
フォームを投稿するときは <form action=”post”>といれますが、メソッドは、この部分のこと。
ただし、formタグにはpostしか入れられません。
そこでputやpatch、deleteメソッドを使う場合には、@methodを使います。
たとえばdeleteメソッドは次のように記述します。
【@method利用例】
1 2 3 4 5 |
<form method="post" action="{{route(ルート名)}}" > @csrf @method('DELETE') <button type=”submit” class="btn btn-danger">削除</button> </form> |
putやpatchメソッドのときは、それぞれ、 @method(‘put’)、@method(‘patch’) といった形にします。
さいごに
今回のまとめ
- CRUDとは create, read, update, deleteの頭文字をとったもの
- 一般的なデータ管理システムでの処理を表現するための用語
- LaravelでCRUDを実装するには、リソースコントローラーを作ると便利
- リソースコントローラーによってルート設定も簡単になる
リソースコントローラーで骨格つくりは簡単になりますが、コード自体は自分で書かねばなりません。
「CRUDを使って実際にコードを組む練習をしたい」
「もっと実践レベルで使いこなせるようになりたい」
と思ったら、学習サイト「初心者のためのLaravelの教科書」をご利用ください。
Laravelの使い方を学びつつ、会員制のフォーラムサイトを作っていく内容です。基礎編でCRUDを使って実際に投稿の作成・保存・更新・削除とすべてのCRUD処理を実施します。
基礎編部分は無料です。
詳しくは、下記のボタンをクリックして案内ページをみてくださいね。