Laravelを使うなら知っておくべきCRUDとリソースコントローラー【Laravel入門講座】

Laravel 入門講座
スポンサーリンク

「CRUD(クラッド)って何それ?」という方は、ぜひLaravelを使う前におさえておきましょう。

効率的にルート設定とコントローラーを作成できるようになります。

わたしは40代でプログラミングをスタートしましたが、最初は「CRUDって何それ?」状態でした^^;

知ってみると、ものすごく便利な考え方です。

同じように感じている方向けに、分かりやすく解説していきますね。

スポンサーリンク

CRUD(クラッド)って何それ?

まず最初にCRUDについて説明していきます。

CRUDとは、下記のステップの頭文字をとったもの。

Create 作成
Read 読み出し
Update 更新
Delete 削除

記事でもお問い合わせでも、作成・表示・更新・削除の4ステップが必要になりますよね。

CRUDとは、データを使ったシステムで共通して行う4つの処理を表現した言葉です。

LaravelにはCRUD(クラッド)を簡単に作れる機能がある

Laravelでは、CRUDの処理はコントローラーに記述していくことになります。

そのために「リソースコントローラー」という機能を準備してくれています。

新たにコントローラーを作るとき、最後に–resourceを付けることで、利用できます。

php artisan make:controller NewController –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 データを削除する用

上記のメソッドを使うと、次のような処理が可能になります。

  1. 新規作成画面で、フォームを使って新たに記事投稿(create と storeを利用)
  2. 一覧画面で、すべてのデータを確認する(indexを利用)
  3. 詳細を見たいときには、個別のページを確認する(showを利用)
  4. 投稿した記事を変更したい場合は、記事変更画面から更新する(editとupdateを利用)
  5. 投稿した記事を削除したい場合には、削除ボタンをクリックする(destroyを利用)

なお、各メソッドへのコードは自分で入れてかねばなりません。

じゅんこ
じゅんこ

そこまでLaravelがやってくれたら、もはやプログラマの出番がなくなっちゃうし^^;

CRUD用のルート設定も簡単にできる

なおリソースコントローラーを作ると、ルート設定も簡単にできちゃいます。

7個のメソッドのルートが、これ1行でOK。

    Route::resource(‘URL’, ‘コントローラー名’);
【記述例】
ものすごく省エネです。

使用しないルート設定の除外方法

なお、もし使わないメソッドがあれば、exceptを使って、次のように記載します。
exceptの後のメソッドのルート設定は利用できなくなります。
  Route::resource(‘URL’, ‘コントローラー名’, [‘except’ =>[‘メソッド名’, ‘メソッド名’]]);
【記述例】

あるいはonlyを使う手もあり。

onlyの後のメソッドのルート設定だけ使えるようになります。

  Route::resource(‘URL’, ‘コントローラー名’, [‘only’ =>[‘メソッド名’, ‘メソッド名’]]);

リソースコントローラー使用時のURL・ルート名・メソッド

リソースコントローラーにより作成されたルート設定を使う場合、URLやルート名はどうするのか。

たとえば次のルート設定の場合。

下記の表のようになります。

【リソースコントローラーを使う場合の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

なお次のコマンドを入力すると、随時、利用可能なルートリストが表示されます。

なお、上記の表で「メソッド」列があり、GET, POSTなどの単語が並んでいます。

ちょっとわかりにくいので、下記に補足説明を入れておきますね。

「なにこれ?」と感じたらお読みください。

メソッドについて補足説明

フォームを投稿するときは <form action=”post”>といれますが、メソッドは、この部分のこと。

ただし、formタグにはpostしか入れられません。

そこでputやpatch、deleteメソッドを使う場合には、@methodを使います。

deleteメソッドは次のように記述します。

【@method利用例】

さいごに

今回のまとめ

  • CRUDとは create, read, update, deleteの頭文字をとったもの
  • 一般的なデータ管理システムでの処理を表現するための用語
  • LaravelでCRUDを実装するには、リソースコントローラーを作ると便利
  • リソースコントローラーによってルート設定も簡単になる

リソースコントローラーで骨格つくりは簡単になりますが、コード自体は自分で書かねばなりません。

このあたりはLaravel入門講座の他の記事で色々と解説しているので、見てみてくださいね。

引き続き、更新もしていきます。

Laravel 入門講座

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中!
会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

【個別サポート実施中】

「本ブログに記載の方法を試してみたけれど、うまくいかない」「コードを見てほしい」という方のために、有償でメールサポートいたします。以下のボタンをクリックして相談フォームにアクセスして下さい。

詳しく見る

Twitter始めました。
スポンサーリンク
40代からプログラミング!

コメント

タイトルとURLをコピーしました