Как установить значение по умолчанию для атрибута модели Laravel
Как установить значение по умолчанию для атрибута в модели Laravel?
Должен ли я установить значение по умолчанию при создании переноса или установить его в классе модели?
Ответы
Ответ 1
Вы можете установить атрибут Default в Model также >
protected $attributes = [
'status' => self::STATUS_UNCONFIRMED,
'role_id' => self::ROLE_PUBLISHER,
];
Вы можете найти информацию в этих ссылках
1.) Как установить значение атрибута по умолчанию для модели Laravel/Eloquent?
2.) https://laracasts.com/index.php/discuss/channels/eloquent/eloquent-help-generating-attribute-values-before-creating-record
Вы также можете использовать Аксессоры и мутаторы для этого
Вы можете найти подробную информацию в документации 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
3.) Универсальные аксессоры и мутаторы в Laravel 4
Ответ 2
Другие ответы не работают для меня - они могут быть устаревшими. Вот что я использовал в качестве решения для автоматической установки атрибута:
/**
* 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;
});
}
Ответ 3
Вы должны установить значения по умолчанию в миграциях:
$table->tinyInteger('role')->default(1);