Laravel 中的 Mutators 和 Accessors 是什么
What are Mutators and Accessors in Laravel
我正在尝试了解访问器和修改器以及我为什么需要它们。我的另一个问题是属性方法的中间部分,例如:
访问器:
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
突变体:
public function setFirstNameAttribute($value)
{
$this->attributes['first_name'] = strtolower($value);
}
在这里,我们可以看到 getFirstNameAttribute 和 setFirstNameAttribute 方法,我没能清除中间部分 FirstName。如果有更好的解释和友好的合作,我将不胜感激。
访问器在对象上创建一个 "fake" 属性,您可以像访问数据库列一样访问该对象。所以如果你的人有 first_name
和 last_name
属性,你可以写:
public function getFullNameAttribute()
{
return $this->first_name . " " . $this->last_name;
}
然后你可以调用 $user->full_name
它会 return 访问器。它将函数名称转换为 snake_case 属性,因此可以通过 $user->foo_bar_baz
.
访问 getFooBarBazAttribute
函数
Mutator 是一种在设置时更改数据的方法,因此如果您希望数据库中的所有电子邮件都只使用小写,您可以这样做:
public function setEmailAttribute($value)
{
$this->attributes['email'] = strtolower($value);
}
然后,如果您在数据库中执行 $user->email = "EMAIL@GMAIL.com"; $user->save();
,它将设置 email@gmail.com
来自 docs 访问器和修改器都是 Laravel 模型中的 public 函数,用于获取和设置模型的属性
当试图检索 first_name 属性的值时,Eloquent 将自动调用 accessor:
$fullName = $user->full_name;
用于自定义模型的属性或添加假属性
另一方面,mutator 用于设置模型的真实属性
当我们尝试设置 an 属性的值时,将自动调用 Mutator
我正在尝试了解访问器和修改器以及我为什么需要它们。我的另一个问题是属性方法的中间部分,例如:
访问器:
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
突变体:
public function setFirstNameAttribute($value)
{
$this->attributes['first_name'] = strtolower($value);
}
在这里,我们可以看到 getFirstNameAttribute 和 setFirstNameAttribute 方法,我没能清除中间部分 FirstName。如果有更好的解释和友好的合作,我将不胜感激。
访问器在对象上创建一个 "fake" 属性,您可以像访问数据库列一样访问该对象。所以如果你的人有 first_name
和 last_name
属性,你可以写:
public function getFullNameAttribute()
{
return $this->first_name . " " . $this->last_name;
}
然后你可以调用 $user->full_name
它会 return 访问器。它将函数名称转换为 snake_case 属性,因此可以通过 $user->foo_bar_baz
.
getFooBarBazAttribute
函数
Mutator 是一种在设置时更改数据的方法,因此如果您希望数据库中的所有电子邮件都只使用小写,您可以这样做:
public function setEmailAttribute($value)
{
$this->attributes['email'] = strtolower($value);
}
然后,如果您在数据库中执行 $user->email = "EMAIL@GMAIL.com"; $user->save();
,它将设置 email@gmail.com
来自 docs 访问器和修改器都是 Laravel 模型中的 public 函数,用于获取和设置模型的属性
当试图检索 first_name 属性的值时,Eloquent 将自动调用 accessor:
$fullName = $user->full_name;
用于自定义模型的属性或添加假属性
另一方面,mutator 用于设置模型的真实属性
当我们尝试设置 an 属性的值时,将自动调用 Mutator