LoginSignup
5
5

More than 1 year has passed since last update.

【Laravel】Eloquent モデルのプロパティ

Last updated at Posted at 2022-09-29

Eloquent の理解を深めるため、プロパティの概要をまとめました。
公式のドキュメントでは各セクションにチラホラ
登場するだけで、一覧としてまとまっていなかったので…)

プロパティ名 概要
$table モデルに関連付けるテーブル名を指定する。
デフォルトは モデル名の複数形
$primaryKey 主キーを指定する。デフォルトは id
※主キーのカラム名が id 以外の場合に設定する必要あり。
複合主キーには非対応。
$keyType モデルの主キーの型を指定する。デフォルトは int
※モデルの主キーが整数でない場合に設定する必要あり。
$incrementing 主キーを自動インクリメントするかを指定する。
デフォルトは false
$fillable create() や fill() 等で追加、更新を許可する属性を指定する。
※\$fillable, $guarded はどちらかのみ指定可能
$guarded create() や fill() 等で追加、更新を許可しない属性を指定する。
$attributes モデルの属性のデフォルト値を指定する。
$casts モデルによりDBからデータ取得、および
データ追加する際にキャストする属性を指定する。
$hidden モデルを配列や JSON に変換する際に
非表示にする属性を指定する。
$visible モデルを配列や JSON に変換する際に
表示する属性を指定する。
$appends モデルを配列や JSON に変換する際に
付加する属性を指定する。
$timestamps Eloquent による created_at, updated_at の自動更新を
許可するかを指定する。デフォルトは true
$dateFormat DBにモデルの日付を保存するときに使用する
フォーマットを指定する。デフォルトは 'Y-m-d H:i:s'
$dates Carbon インスタンスに自動変換する日付カラムを指定する。
CREATED_AT, UPDATED_AT
※const
タイムスタンプに使用するカラム名を指定する。
デフォルトは created_at, updated_at
$touches タイムスタンプを自動更新する親モデルを指定する。
$perPage peginate() で取得するデータのデフォルト件数を指定する。
デフォルトは 15
$with モデルの取得と併せて常に取得する関連モデルを指定する。
$connection モデルが使用するDB接続を指定する。
※アプリケーション用に設定したデフォルトの
DB接続以外を使用する場合に設定する。
$dispatchesEvents モデルによりDB操作が行われるタイミングで
実行するイベントクラスを指定する。

よく使われるものから使いどころが難しそうなものまで、
意外と多くのプロパティがあることがわかりました。
他にもあれば追記していこうと思います。今回は以上です。

5
5
1

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
5
5