📅  最后修改于: 2023-12-03 15:23:12.389000             🧑  作者: Mango
在 Laravel 中,可以通过在模型类中设置 $attributes
属性来为数据库表列设置默认值。
默认值可以在模型类的 $attributes
属性中设置。例如,假设我们有一个 User
模型,需要在创建用户时为 name
字段设置默认值:
class User extends Model
{
protected $attributes = [
'name' => 'John Doe',
];
}
当我们创建不提供 name
值的用户时,name
字段将设置为 'John Doe'
。
Laravel 还允许从其他属性派生默认值。例如,假设我们有一个 Person
模型,需要在创建时为 full_name
设置默认值,而该值应由 first_name
和 last_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;
}
}
在上面的例子中,我们定义了 setFirstNameAttribute
和 setLastNameAttribute
访问器方法,以便在设置 first_name
和 last_name
属性时自动更新 full_name
属性。