web-dev-qa-db-ja.com

Laravelモデルの属性のデフォルト値を設定する方法

Laravelモデルの属性のデフォルト値を設定する方法は?

移行を作成するときにデフォルトを設定する必要がありますか、それともモデルクラスで設定する必要がありますか?

41

モデルのデフォルト属性も設定できます>

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-generation-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のユニバーサルアクセサーとミューテーター

62
Manish

他の答えは私のために働いていません-それらは時代遅れかもしれません。これは、属性を自動設定するためのソリューションとして使用したものです。

/**
 * 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;
    });
}
15
GoogleMac

migrations でデフォルト値を設定する必要があります。

$table->tinyInteger('role')->default(1);
9
Alexey Mezenin