用語集 最終更新 2026.08.08

Eloquent

Eloquent は、Laravel に標準で入っている ORM で、PHP のクラスを通してデータベースを扱いやすくする仕組みです。 テーブルをモデルとして扱い、取得・保存・関連づけを素直に書けるのが特徴です。

まず押さえたいポイント

  • Laravel 標準の ORM で、CRUD や関連データの扱いで中心になる
  • SQL を書かなくても進められるが、SQL を知らなくてよいわけではない
  • 便利さの代償として、発行されるクエリが見えにくくなる

最初に踏むのはほぼ N+1 問題

一覧画面でモデルを回しながら関連データを参照すると、1件ごとに追加のクエリが飛びます。記事20件の一覧でカテゴリ名を表示するだけで、1(一覧)+20(カテゴリ)=21回のクエリになります。100件なら101回です。 対策は関連を先読みする eager load です。

// N+1 になる
$articles = Article::all();

// 2クエリで済む
$articles = Article::with('category')->get();

表示が遅いと感じたら、まずクエリ本数を数えるのが切り分けの第一歩です。件数に比例してクエリが増えているなら N+1 を疑います。

大量データで落ちるパターン

Model::all() は全行をメモリに載せます。数万行のテーブルでこれをやるとメモリ不足で落ちます。一括処理では chunk()cursor() を使い、必要な列だけ select() で絞ります。

押さえておきたい注意点

create()update() に外部入力をそのまま渡すと、意図しない列まで書き換えられる恐れがあります(Mass Assignment)。モデル側の $fillable を必ず設計してください。

実務で見るポイント