首页 Order Laravel 正文

Laravel 模型的访问器和修改器

金鹏头像 金鹏 Laravel 2022-04-01 11:04:11 0 318
导读:一.访问器1.访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程;2. 比如,我们在输出性别时,在性别左右加上括号,或给邮件转换为大写;//访问器,前固定...
一.访问

1. 访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程

2.  比如,我们在输出性别时,在性别左右加上括号,或给邮件转换为大写;

//访问器,前固定 get,后固定 AttributeGender 是字段名

//参数$value 是源字段值,可修改返回

public function getGenderAttribute($value)

{

return ' '.$value. '  ';

}

 

PS:如果字段名是两个单词中间是下划线:user_name,那么方法名:getUserNameAttribute()

 

3. 我们也可创建一个虚拟字段,用已有的数据字段进行整合,不过要进行数据追加;

//将虚拟字段追加到数据对象列表里

protected $appends = [ 'info '];

 

//创建一个虚拟字

public function getInfoAttribute()

{

return $this->username. '- '.$this->gender;

}

 

PS:注,如果 gender 之前已经有访问器修改过,上面的方法会得到修改过的结果; PS果要使用源字段进行创建虚拟字段,需要使用下面这种:

return $this->attributes[ 'username ']. '- '.$this->attributes[ 'gender '];

 

二.修改

1. 修改器,相对于访问器,是在写入的时候拦截,进行修改再写入;

//修改器,写入数据时,将邮箱转换为大

public function setEmailAttribute($value)

{

$this->attributes[ 'email '] = strtoupper($value);

}

 

2. 可以添加默认的日期列,默认 created_at  updated_at

//设置可以自动写入日期的列

protected $dates = [

'details '

];

 

3. 可以设置字段输出的类型,比如设置一个布尔型,输出时就是true false

//设置字段类型

protected $casts = [

'details '   =>  'boolean '

];


本文地址:https://www.jinpeng.work/?id=166
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键