1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Laravel】ORM

Posted at

こちらの記事は以下の書籍を参考にアウトプットとして執筆しました。
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というプロパティを用意してこれにフィールド名を設定する。
これによりプライマリキーのフィールド名を変更できる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?