二十一PHP框架Laravel学习笔记——模型的访问器和修改器

Posted 小小白学计算机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二十一PHP框架Laravel学习笔记——模型的访问器和修改器相关的知识,希望对你有一定的参考价值。

一.访问器

  1. 访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程;
  2. 比如,我们在输出性别时,在性别左右加上括号,或给邮件转换为大写;
//访问器,前固定 get,后固定 Attribute,Gender 是字段名 
//参数$value 是源字段值,可修改返回 
public function getGenderAttribute($value) { 
	return '【'.$value.'】'; 
}

在这里插入图片描述

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

  1. 我们也可以创建一个虚拟字段,用已有的数据字段进行整合,不过要进行数据追加;
//将虚拟字段追加到数据对象列表里去 
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);
 }

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 可以添加默认的日期列,默认 created_at 和 updated_at;
//设置可以自动写入日期的列 
protected $dates = [ 'details' ]; 
  1. 可以设置字段输出的类型,比如设置一个布尔型,输出时就是 true 和 false;
 //设置字段类型 
 protected $casts = [ 'details' => 'boolean' ];

以上是关于二十一PHP框架Laravel学习笔记——模型的访问器和修改器的主要内容,如果未能解决你的问题,请参考以下文章

二十八PHP框架Laravel学习笔记——模型的关联查询

二十PHP框架Laravel学习笔记——模型的作用域

二十六PHP框架Laravel学习笔记——模型的一对多关联

二十五PHP框架Laravel学习笔记——模型的一对一关联

二十七PHP框架Laravel学习笔记——模型的多对多关联

二十九PHP框架Laravel学习笔记——Debugbar 调试器