初心者向け: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円 |
![]()
📘 Laravel10対応
Laravelの教科書 バージョン10対応 [ 加藤 じゅんこ ] 価格:3300円 |
![]()
まとめ
- CRUDはLaravel開発の基本中の基本!
- resource() ルートと PostController を使えば、最短で実装が可能
- Viewファイル(Blade)でデータを表示する流れを理解しよう!
関連記事
👉 読者登録・ブックマークして今後の更新もぜひチェック!