こちらの記事は以下の書籍を参考にアウトプットとして執筆しました。
PHPフレームワーク Laravel入門 第2版
Eloquentの基本
ORMによりDBのレコードをオブジェクトとして扱えるようになる
LaravelのORMはEloquent
ORMとは
テーブルをクラスにように定義して、レコ0度をクラスにインスタンスのように扱うようにする仕組みによりPHPらしい操作をできるようにするための橋渡しの仕組み
異なる仕組みへの橋渡し
ORMは互換性のないデータを変換して双方でやり取りができるようにする仕組み
DBからのレコードがPHPに渡されるとき、PHPのオブジェクトに形に変換
PHPからDBへ渡すときもレコードに変換する
EloquentとORM
Eloquentはモデルというクラスを定義して、以降これを使ってDBを操作する
モデルはテーブルの内容を定義したクラスで、そのテーブル内のフィールドをプロパティとして持たせている。
これにより、テーブルとフィールドをモデルクラスとインスタンスを触る感覚で操作できる。
モデル作成
php artisan make:model モデル名
上記コマンドで作成できる
以降ではpoepleテーブル操作するモデルPersonを作成して扱う。
モデル名の命名規則
poepleテーブルのモデルがPersonになっているが、これはLaravelには「テーブル名は複数形、モデルは単数形」という命名規則があるため。
こうすることでテーブルとモデルと自動的に関連付けて動くようになっている。
PersonControllerの作成
php artisan make:controller コントローラ名
Personモデル
前レコードの取得
$変数=Person::all();
取得されたレコードはIlluminate\Database\Eloquent\Model
名前空間のCollectionクラスのインスタンスとして得られる。
これで全レコードをforeachで処理できる
IDによる検索
$変数=モデルクラス::find(整数);
これでidによる検索ができるがプライマリキーのフィールド名はidである必要がある
id以外のプライマリキーの場合
id以外のマナエで用意してしまった場合はモデルのプライマリキーの値を変更する。
モデルクラスの$primaryKey
というプロパティを用意してこれにフィールド名を設定する。
これによりプライマリキーのフィールド名を変更できる。