Eloquent は Laravel の ORM (Object-Relational Mapper) です。Active Record パターンを使用しており、各データベーステーブルには対応する Model クラスがあり、モデルインスタンスは行を表します。SQL を記述することなく、データベースをクエリおよび操作するための優雅で表現力豊かな方法を提供します。
モデルの定義
{
= [, ];
}
モデルは Model を拡張し、命名規則によってテーブルにマップされます (User → users)。$fillable リストは、どのフィールドが一括割り当て可能であるかを制御します (セキュリティ機能)。
// CREATE
$user = User::create(['name' => 'Ann', 'email' => '[email protected]']);
$user = new User; $user->name = 'Bob'; $user->save();
// READ
User::all(); // all rows
User::find(1); // by primary key
User::where('active', true)->get(); // query with conditions
User::where('email', $email)->first(); // first match
// UPDATE
$user->update(['name' => 'New Name']);
$user->name = 'X'; $user->save();
// DELETE
$user->delete();
User::destroy(1);
Eloquent の流暢でチェーン可能な API はほぼ英語のように読め、SQL を自動生成します。一般的な操作に対して生クエリは不要です。
User::where('age', '>', 18)
->where('active', true)
->orderBy('name')
->limit(10)
->get(); // chainable query building
User::where('role', 'admin')->count();
User::where('email', $e)->exists();
class Post extends Model {
public function author() { // a relationship
return $this->belongsTo(User::class);
}
public function getExcerptAttribute() { // an accessor (computed attribute)
return Str::limit($this->body, 100);
}
}
$post->author; // the related User
$post->excerpt; // computed attribute
Eloquent は Laravel の中核です。それはアプリケーションがデータベースと相互作用する方法であり、その優雅な Active Record 設計はフレームワークの最も称賛されている機能の 1 つなので、これをマスターすることは Laravel 開発に必須です。
モデルの定義方法 (命名規則によるテーブルへのマッピング)、CRUD 操作の実行、および流暢でチェーン可能な builder でのクエリ実行は日々の基礎的な知識です。データアクセスはほとんどのアプリケーションの中核だからです。
Eloquent の表現力豊かで読みやすい API (User::where(...)->orderBy(...)->get()) を使用すると、SQL を記述することなく、クリーンな PHP でデータベースを操作でき、生産性と可読性を大幅に向上させます。
モデルはデータコンテナ以上のものです。それらは 関係 (関連テーブルを接続) を定義し、アクセサ/ミューテーター (計算属性) とビジネスロジックを持つことができ、それらを豊富なドメインオブジェクトにします。
$fillable の一括割り当て保護 (セキュリティ上の考慮事項) を理解することも重要です。
Eloquent は Laravel アプリケーションがデータを読み書きする方法であり、事実上すべての Laravel アプリに表示されるため、モデルと Eloquent のクエリ API をマスターすることは、効果的な Laravel 開発を支える基礎的で必須の知識です。