どうもこんにちは。
今回言いたいことは、すでにタイトルで9割ぐらい説明し終わってしまっているのですが、一応そこに思い至った経緯と詳細を書き連ねておこうと思います。
データモデルのデフォルト値を予め決めておきたい場合、Migrationのロジックの中でdefault()を使えば設定できますが、これはデータソースに対する操作なので、あまり適切ではないと考えました。(データソースが変わればそんなメソッドは簡単に使えなくなってしまうため。)
デフォルト値は業務ルールに関わる事が多いので、なるべくドメインモデルに当たる箇所に入れるべきだと思いました。
そこで、デフォルト値を入れたいEloquentモデルのコード内に、以下のように記述しました。
1 2 3 |
protected $attributes = [ "hoge_prop" => "(default value)", ]; |
これで、新規にモデルを生成したときに、対象プロパティにデフォルト値が挿入されます。
この辺の説明、Laravelのリファレンスには無かったとです(´;ω;`)
以下の記事を参考にしました。
How to set a default attribute value for a Laravel / Eloquent model?