Help us understand the problem. What is going on with this article?

LaravelのModelの忘れがちな設定個人的まとめ

More than 1 year has passed since last update.

目的

  • 使う場面がたまにあるTipsをまとめる
    • よく忘れるから備忘録として書き留め
connectionの変更
  • 頻度は多くないけど別のDBに接続させたい場合があったりなかったり
protected $connection = '接続先';
  • 接続先
    • これはconfig/database.php内にて定義しているconnectionsのkeyになります
created_atとupdated_at関連
  • カラム名の変更
const CREATED_AT = 'カラム名';
const UPDATED_AT = 'カラム名';
  • 使用しない
const CREATED_AT = null;
const UPDATED_AT = null;
primary key関連
  • incrementしない。たまーにある
public $incrementing = false;
  • idではないカラム名の場合
    • 複合主キーの場合、[]を使用し配列にすればいいです
protected $primaryKey = 'カラム名';
protected $primaryKey = ['カラム名', 'カラム名'];
table名変更
  • よく使うかもなやつ
protected $table = 'テーブル名';
それ◯◯◯◯した時に実行したいけど都度書きたくない
  • 種類
creating, created
updating, updated
deleting, deleted
saving, saved
restoring, restored
public static function boot()
{
    parent::boot();
    static::creating(function (Model $model) {
        // 作成する際にしたい何かしらの処理
    })
}

物によっては、TraitにするかEloqunet Modelを継承した親Class作ってGlobalScopeにする方がいいとおもいます

まとめ

  • 今後も何かあったら追加します。
roxx
人材紹介業むけプラットフォーム「agent bank」、リファレンスチェックサービス「back check」を運営。
https://roxx.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away