当前位置: 首页 > news >正文

21.模型的访问器和修改器

学习要点:
1.访问器
2.修改器
本节课我们来开始学习数据库模型的访问器和修改器的使用。
一.访问器
1. 访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程;
2. 比如,我们在输出性别时,在性别左右加上括号,或给邮件转换为大写;
//访问器,前固定 get,后固定 Attribute,Gender 是字段名
//参数$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'
];

http://www.lryc.cn/news/69467.html

相关文章:

  • 72 yaffs文件系统挂载慢 sync不起作用
  • 【无标题】春漫乌海湖!
  • Red Hat重置root密码
  • 应急响应之日志排查方法,Linux篇
  • Midjourney AI 官方中文版已开启内测申请;OpenAI 正准备向公众发布一款新的开源语言模型。
  • DevOps 的道术法器,探寻 DevOps “立体化”实践之旅
  • redis 7.x 缓存双写一致性的解决方案
  • 真题详解(语法分析输入记号流)-软件设计(八十)
  • ffmpeg-编译汇总01
  • 素雅的登录界面,简单而优雅
  • Docker数据目录迁移方法
  • C++——动态规划
  • 【FAQ】视频编辑服务常见问题及解答
  • JavaEE(系列8) -- 多线程案例(单例模式)
  • 深度剖析,如何从底层代码层面理解Selenium和Appium的关联
  • 【Three.js】第一、二章 入门指南和基础知识
  • 力扣第 104 场双周赛 2681. 英雄的力量
  • 在linux上创建crypto_LUKS格式的块设备
  • 76.建立一个主体样式第二部分
  • SQL删除重复的记录(只保留一条)-窗口函数row_number()
  • CF1660D Maximum Product Strikes Back 题解
  • 基于CSSOM的暗链检测技术实现方案
  • MySQL db、tables_priv、columns_priv和procs_priv权限表
  • JavaWeb-JSP的学习
  • 力扣sql中等篇练习(二十三)
  • C语言算法之查找
  • 肝一肝设计模式【九】-- 享元模式
  • 自动化测试的十大雷区【刚入门必看】
  • 【Android源码篇】用grep搜索源码内容关键词
  • 腾讯云轻量应用服务器卡死怎么连接?