Laravel Eloquent で DB 操作

Contents

Laravel DB 操作 Eloquent

Eloquent を見てきます。

Eloquent

Eloquent は ORM です。
モデルクラスのインスタンスを返します。

モデル取得

all

すべての結果を取得するにはallメソッドを使います。

find

主キーで指定したモデル取得するにはfindメソッドを使います。

複数のレコードを取得するにはfindメソッドに主キーを配列で渡します。

first

条件にマッチした最初のモデル取得するにはfirstメソッドを使います。

firstWhere

条件にマッチした最初のモデル取得する短縮記法はfirstWhereメソッドを使います。

firstOr

最初の結果が見つからない場合コールバックを実行するにはfirstOrメソッドを使います。

findOrFail

モデルが見つからない時、404を返すにはfindOrFailメソッドを使います。

集計

count

カウントするにはcountメソッドを使います。

max

最大値を取得するにはmaxメソッドを使います。

min

最小値を取得するにはminメソッドを使います。

avg

アベレージを取得するにはavgメソッドを使います。

sum

合計値を取得するにはsumメソッドを使います。

モデルの追加と更新

save

モデル追加をするにはsaveメソッドを使います。

モデル更新するにはsaveメソッドを使います。

update

複数モデルの更新をするにはupdateメソッドを使います。

create

一行で新しいモデルを保存するにはcreateメソッドを使います。
モデルへfillable属性かguarded属性どちらかの設定が必要となります。

firstOrCreate

モデルがなければレコード挿入してモデル生成するにはfirstOrCreateメソッドを使います。
第2引数があれば、その属性も同時にレコード挿入します。

firstOrNew

モデルが存在しない場合に、新しいモデルインスタンスを返すにはfirstOrNewメソッドを使います。
データベースに保存するにはsaveメソッドが必要です。

updateOrCreate

モデルを更新、存在しない場合は新しいモデルを作成するにはupdateOrCreateメソッドを使います。

判定

isDirty / isClean

属性変化の判定をするにはisDirtyメソッド、isCleanメソッドを使います。

wasChanged

最後にモデルが保存されたときから属性に変化があったかを判定するにはwasChangedメソッドを使います。

削除

delete

モデルを削除するにはdeleteメソッドを使います。
複数削除文はモデルイベントが発行されません。

destroy

キー指定で削除するにはdestroyメソッドを使います。

論理削除

テーブルにdeleted_atカラムとモデルにSoftDeletesトレイトをセットして論理削除を有効にします。
deleteメソッドでdeleted_atカラムに現在の時間がセットされます。

trashed

論理削除されているかを確認するには、trashedメソッドを使います。

withTrashed

論理削除済みのモデルも含めて取得するにはwithTrashedメソッドを使います。

onlyTrashed

論理削除済みのモデルだけを取得するにはonlyTrashedメソッドを使います。

restore

論理削除を有効な状態に更新するにはrestoreメソッドを使います。

forceDelete

完全に削除するにはforceDeleteメソッドを使います。

replicate

モデルを複製するにはreplicateメソッドを使います。

クエリスコープ

グローバルスコープ

  • 作成
    デフォルトでは生成する artisan コマンドがないので手動で作成します。
    package を追加で拡張することもできます。

  • 適用
    モデルに適用にするにはbootメソッドを使います。

  • 実行

  • グローバルスコープの削除
    グローバルスコープを除外して実行したい場合

ローカルスコープ

  • 定義

モデルの比較

is

モデルと別モデルを比較するにはisメソッドを使います。

イベント

creating、created

レコードの挿入時にcreatingイベントが発行されます。
レコード挿入の完了時にcreatedイベントが発行されます。

updating、updated

レコードの更新時にupdatingイベントが発行されます。
レコード更新の完了時にupdatedイベントが発行されます。

saving、saved

save 時にsavingイベントが発行されます。
save 完了時にsavedイベントが発行されます。

deleting、deleted

delete 時にdeletingイベントが発行されます。
delete 完了時にdeletedイベントが発行されます。

restoring、restored

restore 時にrestoringイベントが発行されます。
restore 完了時にrestoredイベントが発行されます。

retrieved

データベースから既存のモデルを取得時に発行されます。

dispatchesEvents

dispatchesEventsプロパティを定義します。

事前にApp\Events\にイベントクラスを用意します。
artisan コマンドで作成できます。

モデルでイベントクラスへマップします。

オブザーバ

observe

オブザーバを登録するにはobserveメソッドを使います。

  • 事前にApp\Observers\にオブザーバクラスを用意します。
    artisan コマンドで作成できます。

  • オブザーバクラス

  • オブザーバーを登録
    1例としてサービスプロバイダのbootメソッドで登録します。

参考リンク

Eloquent: Getting Started
Laravel 6.x Eloquent:利用の開始

関連リンク

Laravel クエリビルダで DB 操作

返信を残す

メールアドレスが公開されることはありません。

CAPTCHA