エンジニア日記

現役エンジニアの役に立てばいいなと思い立ち上げたブログ

初心者向け:LaravelでのCRUD操作の基礎

※ 当ブログにはプロモーションが含まれています

はじめに

Laravelで「データの登録・表示・編集・削除」を実装する方法を知りたいですか?

この記事では、Laravel初心者が最初に覚えるべき「CRUD操作」の基本を、実例付きでわかりやすく解説します。

1. CRUDとは?

CRUDとは、アプリ開発でよく使われる以下の4つの操作の頭文字です。

処理名 英語 Laravelでの役割
作成 Create 登録画面 → データ保存
読み取り Read 一覧表示、詳細表示
更新 Update 編集画面 → 上書き保存
削除 Delete データの削除処理

2. 準備:マイグレーションとモデルの作成

ここでは「記事(Post)」というシンプルなデータを扱います。

php artisan make:model Post -m

生成された database/migrations/xxxx_create_posts_table.php を以下のように編集:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('body');
        $table->timestamps();
    });
}

その後、マイグレーションを実行します。

php artisan migrate

3. ルーティングを定義する

routes/web.php に以下を追加:

use App\Http\Controllers\PostController;

Route::resource('posts', PostController::class);

これだけで、CRUDに必要な7つのルートが自動生成されます!

4. コントローラーを作成

以下のコマンドで、リソースコントローラーを作成します。

php artisan make:controller PostController --resource

これにより、CRUDに必要な7つのアクション(index, create, store, show, edit, update, destroy)が含まれる PostController.php が生成されます。 それぞれの役割と実装例は以下の通りです。 今回はCRUDなので必要なメソッド以外は割愛させていただきます。

🔹 create(新規登録処理)

public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|max:255',
        'body' => 'required',
    ]);

    Post::create($validated);

    return redirect()->route('posts.index')->with('success', '投稿が完了しました');
}

🔹 read(一覧表示)

public function index()
{
    $posts = Post::all();
    return view('posts.index', compact('posts'));
}

🔹 update(更新処理)

public function update(Request $request, Post $post)
{
    $validated = $request->validate([
        'title' => 'required|max:255',
        'body' => 'required',
    ]);

    $post->update($validated);

    return redirect()->route('posts.index')->with('success', '投稿を更新しました');
}

🔹 destroy(削除処理)

public function destroy(Post $post)
{
    $post->delete();
    return redirect()->route('posts.index')->with('success', '投稿を削除しました');
}

一つのコマンドで7つのよく使うメソッドが作成されるので便利です。

5. ビューを作成(Bladeテンプレート)

例:resources/views/posts/index.blade.php

<h1>記事一覧</h1>

@foreach($posts as $post)
  <div>
    <h2>{{ $post->title }}</h2>
    <p>{{ $post->body }}</p>
  </div>
@endforeach

bladeについては今回割愛させていただきます。

6. 他のアクション(create, store, edit, update, destroy)も実装!

ここでは割愛しますが、以下の流れで進めてください:

メソッド 目的 必要なビュー
index 一覧フォーム表示 index.blade.php
create 登録フォーム表示 create.blade.php
store フォーム送信処理 -
edit 編集フォーム表示 edit.blade.php
show 詳細情報フォーム show.blade.php
update 更新処理 -
destroy 削除処理 -

7. Laravel CRUDの学習におすすめ教材📚

📘 Laravel6と古いですが入門書としてはおすすめです

PHPフレームワーク Laravel入門 第2版【電子書籍】[ 掌田津耶乃 ]

価格:2970円
(2025/6/25 22:28時点)

📘 Laravel10対応

Laravelの教科書 バージョン10対応 [ 加藤 じゅんこ ]

価格:3300円
(2025/6/25 22:29時点)

まとめ

  • CRUDはLaravel開発の基本中の基本!
  • resource() ルートと PostController を使えば、最短で実装が可能
  • Viewファイル(Blade)でデータを表示する流れを理解しよう!

関連記事

👉 読者登録・ブックマークして今後の更新もぜひチェック!