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利用例】

putやpatchメソッドのときは、それぞれ、 @method(‘put’)、@method(‘patch’) といった形にします。

さいごに

今回のまとめ

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

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

「CRUDを使って実際にコードを組む練習をしたい」

「もっと実践レベルで使いこなせるようになりたい」

と思ったら、学習サイト「初心者のためのLaravelの教科書」をご利用ください。

Laravelの使い方を学びつつ、会員制のフォーラムサイトを作っていく内容です。基礎編でCRUDを使って実際に投稿の作成・保存・更新・削除とすべてのCRUD処理を実施します。

基礎編部分は無料です。

詳しくは、下記のボタンをクリックして案内ページをみてくださいね。

Laravelの教科書について見てみる

Laravel入門講座

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【無料プレゼント】

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

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

詳細はこちらをクリック

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【AWS関連・Webアプリ開発・生成AIのAPI活用のご相談承ってます】
お気軽にお声がけください。
御社にとって、最善の方法をご一緒に考えてまいります。
Zoomミーティング実施中。サンプルアプリご利用可能です。

お問合せフォーム

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました