<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * The attributes that should be casted to native types. * * @var array */ protected $casts = [ 'is_admin' => 'boolean', ]; }
现在,每当你访问 is_admin 属性时,其值都会被转换为布尔值,即使其在数据库中存储的整型值:
$user = App\User::find(1); if ($user->is_admin) { // }
数组转换
array 转换的类型对于存储序列化 JSON 值的列尤其有用。比如,如果数据库有一个 TEXT 类型的字段,并且其存储的是序列化的 JSON,如果你添加该属性的 array 转换,那么当你在 Eloquent 模型上访问这个属性时,它将会自动的进行反序列化为 PHP 的数组:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * The attributes that should be casted to native types. * * @var array */ protected $casts = [ 'options' => 'array' ]; }
当你转义定义完成之后,你可以访问 options 属性,并且它会自动的被从 JSON 反序列化为 PHP 数组。当你设置值到 options 属性时,所给定的数组会自动的序列化为 JSON 格式,然后进行存储:
$user = App\User::find(1); $options = $user->options; $options['key'] = 'value'; $user->options = $options; $user->save();
以上就是小编为大家整理的laravel学习教程之存取器的全部内容,有需要的小伙伴们可以参考学习,小编陆续还会更新laravel相关的知识,请大家继续关注脚本之家。
您可能感兴趣的文章: