Подтвердить что ты не робот

Как установить значение по умолчанию для атрибута модели Laravel

Как установить значение по умолчанию для атрибута в модели Laravel?

Должен ли я установить значение по умолчанию при создании переноса или установить его в классе модели?

4b9b3361

Ответ 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);