Eloquent の理解を深めるため、プロパティの概要をまとめました。
(公式のドキュメントでは各セクションにチラホラ
登場するだけで、一覧としてまとまっていなかったので…)
プロパティ名 | 概要 |
---|---|
$table | モデルに関連付けるテーブル名を指定する。 デフォルトは モデル名の複数形。 |
$primaryKey | 主キーを指定する。デフォルトは id。 ※主キーのカラム名が id 以外の場合に設定する必要あり。 複合主キーには非対応。 |
$keyType | モデルの主キーの型を指定する。デフォルトは int。 ※モデルの主キーが整数でない場合に設定する必要あり。 |
$incrementing | 主キーを自動インクリメントするかを指定する。 デフォルトは true。 |
$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操作が行われるタイミングで 実行するイベントクラスを指定する。 |
よく使われるものから使いどころが難しそうなものまで、
意外と多くのプロパティがあることがわかりました。
他にもあれば追記していこうと思います。今回は以上です。