简介
访问器和修改器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。
例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。
除了自定义访问器和修改器,Eloquent 还可以自动转换日期字段为 Carbon 实例甚至将文本转换为JSON。
访问器 & 修改器
定义访问器
要定义一个访问器,需要在模型中创建一个 getFooAttribute 方法,其中 Foo 是你想要访问的字段名(使用驼峰式命名规则)。
在本例中,我们将会为 first_name 属性定义一个访问器,该访问器会在获取 first_name 的值时被 Eloquent 自动调用:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* 获取用户的名字
*
* @param string $value
* @return string
*/
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
}
正如你所看到的,该字段的原生值被传递给访问器,然后返回处理过的值。要访问该值只需要简单访问 first_name 即可:
$user = App\User::find(1);
$firstName = $user->firs