EloquentでCRUD
Eloquentのメソッドを使ってレコードの作成、読み取り、更新、削除を行います
「EloquentでCRUD」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
作成 — save()
モデルのインスタンスを作成し、属性を設定して save() を呼び出します。
<?php
$post = new Post();
$post->title = "Hello World";
$post->body = "My first post";
$post->save(); // INSERT INTO posts ...作成 — create()
Model::create() は一括代入を使用して、1 行でレコードを挿入します。$fillable の設定が必要です。
<?php
$post = Post::create([
"title" => "Hello World",
"body" => "My first post",
"user_id" => auth()->id(),
]);firstOrCreate と updateOrCreate
firstOrCreate() は一致するレコードを検索し、なければ作成します。updateOrCreate() は一致するレコードを検索して更新し、なければ作成します。
<?php
// Find or create:
$tag = Tag::firstOrCreate(["name" => "PHP"]);
// Update or create:
$setting = Setting::updateOrCreate(
["key" => "theme"],
["value" => "dark"]
);読み取り — all()
すべての行を Eloquent Collection として取得します。
<?php
$posts = Post::all(); // SELECT * FROM posts
foreach ($posts as $post) {
echo $post->title;
}読み取り — find()
主キーでレコードを検索します。見つからない場合は null を返します。findOrFail() は見つからない場合に 404 例外をスローします。
<?php
$post = Post::find(1);
$post = Post::findOrFail(1); // throws ModelNotFoundException if missing読み取り — where()
where() 句でレコードを絞り込みます。複数の条件を連結できます。
<?php
$published = Post::where("is_published", true)
->where("user_id", $userId)
->orderBy("created_at", "desc")
->get();更新 — save()
既存のモデルの属性を変更して save() を呼び出すと、UPDATE が生成されます。
<?php
$post = Post::findOrFail(1);
$post->title = "Updated Title";
$post->save(); // UPDATE posts SET title=... WHERE id=1更新 — update()
クエリに一致する複数のレコードを、1 回の SQL 呼び出しで一括更新します。
<?php
Post::where("user_id", $userId)
->update(["is_published" => false]);削除 — delete()
取得済みのモデルインスタンスを削除します。
<?php
$post = Post::findOrFail(1);
$post->delete(); // DELETE FROM posts WHERE id=1削除 — destroy()
Post::destroy($id) はモデルを先に取得せず、主キーで削除します。
<?php
Post::destroy(1);
Post::destroy([1, 2, 3]); // delete multipleページネーション
paginate() を使用すると、自動的に LIMIT/OFFSET を適用するページネーターオブジェクトを返します。
<?php
$posts = Post::latest()->paginate(15);
// In Blade: {{ $posts->links() }}まとめ
Eloquent では、挿入に create() / save()、読み取りに find() / where()、更新に save() / update()、削除に delete() / destroy() を使用します。
確認問題
レコードが見つからない場合に例外をスローするメソッドはどれですか?
よくある質問
「EloquentでCRUD」レッスンは無料ですか?
はい。「EloquentでCRUD」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「EloquentでCRUD」で何を学びますか?
Eloquentのメソッドを使ってレコードの作成、読み取り、更新、削除を行います ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「EloquentでCRUD」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。