Laravelモデルの属性のデフォルト値を設定する方法は?
移行を作成するときにデフォルトを設定する必要がありますか、それともモデルクラスで設定する必要がありますか?
モデルのデフォルト属性も設定できます>
protected $attributes = [
'status' => self::STATUS_UNCONFIRMED,
'role_id' => self::ROLE_PUBLISHER,
];
これらのリンクで詳細を見つけることができます
1.) Laravelのデフォルトの属性値を設定する方法/ Eloquentモデル?
また、アクセサーとミューテーターを使用することもできます。詳細は、Laravelドキュメント1で確認できます。) https ://laravel.com/docs/4.2/eloquent#accessors-and-mutators
2.) https://scotch.io/tutorials/automatically-format-laravel-database-fields-with-accessors-and-mutators
他の答えは私のために働いていません-それらは時代遅れかもしれません。これは、属性を自動設定するためのソリューションとして使用したものです。
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
// auto-sets values on creation
static::creating(function ($query) {
$query->is_voicemail = $query->is_voicemail ?? true;
});
}
migrations でデフォルト値を設定する必要があります。
$table->tinyInteger('role')->default(1);