0
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版

モデルの更新・削除・保存

モデルの新規保存

  1. モデルのインスタンスを作成
  2. 値を設定
  3. インスタンスの保存

やり方はイトイとあるが、結局はインスタンスを作成して値を設定してsaveするという流れ

モデルの更新

モデルを保存する点に関して新規作成と同じ
違いはモデルクラスをnewではなく、モデルクラス::findでインスタンスを用意する点

モデルの削除

deleteメソッドを呼び出すだけ

モデルインスタンス->delete();

モデルのリレーション

リレーションは複数のテーブルを関連付けること

2つのテーブルの関係について

主テーブルと従テーブルの関係

種類 説明
主テーブル 外部キーを持たないテーブル
従テーブル 外部キーにより主テーブルとの関連情報を保管しているテーブル(外部キーを持っているテーブルのこと)

has One結合

2つのテーブルが1対1の関係で関連付けられている
主テーブルから従テーブルを取得する

hasOneメソッドの返り値を返すことで定義できる

has Many結合

1対多の関連付け
hasManyメソッドを使う

belongs To結合

上記の2つは主テーブルから従テーブルを取り出すもので、belongs Toはその逆
従テーブルから主テーブルを取り出す
基本的に1つだけ取り出される。

関連レコードの有無

特定のリレーションの値を持つ

モデル ::has(リレーション名)->get();

指定のリレーションの値を持たない

モデル ::dosenthas(リレーション名)->get();

withによるEagerローディング

モデルクラス名:all

これで全レコードの取得ができるが、これはDBにとってはアクセス回数が多くなることから負担になる。

DBへのアクセスを減らすにはwithメソッドを使う

モデル ::with(リレーション名)->get();

これはRagerローディングと呼ばれ、一回のallメソッドで膨大なアクセスを行うときに劇的な効果を得る

0
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
0
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?