📜  在 laravel 模型中为列设置默认值 - PHP (1)

📅  最后修改于: 2023-12-03 15:23:12.389000             🧑  作者: Mango

在 Laravel 模型中为列设置默认值 - PHP

在 Laravel 中,可以通过在模型类中设置 $attributes 属性来为数据库表列设置默认值。

设置默认值

默认值可以在模型类的 $attributes 属性中设置。例如,假设我们有一个 User 模型,需要在创建用户时为 name 字段设置默认值:

class User extends Model
{
    protected $attributes = [
        'name' => 'John Doe',
    ];
}

当我们创建不提供 name 值的用户时,name 字段将设置为 'John Doe'

从其他属性派生默认值

Laravel 还允许从其他属性派生默认值。例如,假设我们有一个 Person 模型,需要在创建时为 full_name 设置默认值,而该值应由 first_namelast_name 组成:

class Person extends Model
{
    protected $attributes = [
        'full_name' => null,
    ];

    public function setFirstNameAttribute($value)
    {
        $this->attributes['first_name'] = $value;
        $this->attributes['full_name'] = $value.' '.$this->attributes['last_name'];
    }

    public function setLastNameAttribute($value)
    {
        $this->attributes['last_name'] = $value;
        $this->attributes['full_name'] = $this->attributes['first_name'].' '.$value;
    }
}

在上面的例子中,我们定义了 setFirstNameAttributesetLastNameAttribute 访问器方法,以便在设置 first_namelast_name 属性时自动更新 full_name 属性。