Laravelを始めると「Migration?Model?Controller?Route?View?」と、聞き慣れない言葉がたくさん出てきます。
でも実は「役割分担」で考えると、とてもわかりやすいです。
口コミアプリ(ReviewSystem)を例に「投稿→一覧表示→更新→削除」の流れを整理してみましょう。
🎯 まずは全体像
Laravelは5つの役割で動いています。
- Migration … データベースの設計図
- Model … データベースと話す窓口
- Controller … やることを決める司令塔
- View … 見た目(HTML画面)
- Route … URLの案内板
👉 この役割分担で「投稿→一覧→更新→削除」が動いています。
✏️ 投稿(新しい口コミを入れる)
- ユーザーが 画面(View) のフォームに入力して「投稿」ボタンを押す。
-
Route が「この送信は
ReviewController@store
に渡す」と案内。 - Controller が「入力チェック → Model に保存命令」を出す。
- Model がデータベースに保存。
- Controller が「保存完了、一覧へ戻れ」と指示。
- View に新しい口コミが反映される。
✏️ 一覧(保存された口コミを見る)
- ブラウザで
/reviews
にアクセス。 -
Route が「ここは
ReviewController@index
」と案内。 - Controller が Model に「全件取ってきて」と依頼。
- Model がデータベースからデータを返す。
- Controller がそれを View に渡す。
- 画面に一覧が表示される 🎉
✏️ 更新(書き直す)
- 一覧にある「編集フォーム」で内容を書き直し「更新」ボタンを押す。
-
Route が「これは PUT だから
ReviewController@update
」へ。 - Controller が「チェックして → Model に更新命令」。
- Model がデータベースを更新。
- Controller が「更新完了、一覧へ戻れ」と指示。
- View に更新内容が反映される。
✏️ 削除(消す)
- 一覧で「削除」ボタンを押す。
-
Route が「これは DELETE だから
ReviewController@destroy
」へ。 - Controller が「Model に削除命令」を出す。
- Model がデータベースから該当データを削除。
- Controller が「削除完了、一覧へ戻れ」と指示。
- View から口コミが消えて表示される。
🔄 まとめると
Laravelはいつもこの流れ👇
View(画面で操作) → Route(案内) → Controller(司令) → Model(DBと会話) → Migrationで作ったテーブルに保存 → Controller → View(画面に表示)
💡 よくある疑問
-
@csrf
って何? → フォーム送信の安全バッジ。Laravelでは必須。 -
@method('PUT')
/@method('DELETE')
は? → HTMLはPOSTしか送れないので、更新や削除の合図。 -
{{ $review->title }}
って何? → PHPでいうecho
。データを画面に出す記号。 -
@if($reviews->isEmpty())
は? → 「もしデータが空なら…」という条件分岐。
✅ 一言まとめ
- Migration … データベースの間取り図
- Model … DBとやり取りする窓口
- Route … 案内板
- Controller … 処理の司令塔
- View … 見た目の画面
👉 投稿・一覧・更新・削除、全部この流れ。
「どこに書けばいい?」と迷ったら、この役割分担を思い出せばスッキリします!