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'
];
相关文章:
21.模型的访问器和修改器
学习要点: 1.访问器 2.修改器 本节课我们来开始学习数据库模型的访问器和修改器的使用。 一.访问器 1. 访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程; 2. 比如,我们在输出性别时࿰…...
72 yaffs文件系统挂载慢 sync不起作用
1 引言 最近在开放过程中遇到了一个问题:Linux在启动挂载根文件系统时很慢很慢!而且每次开机都是这样,一下子让人难以理解。 因为,理论上当机器第一次启动,会扫描完整的rootfs的flash区域,从而建立索引&…...
【无标题】春漫乌海湖!
春漫乌海湖! 杨桂林 黄河流经几字弯内蒙古段的第一段便遇见了镶嵌在大漠中的璀璨明珠乌海湖。 谁也不会相信:这里被乌兰布和、库布其、毛乌素三大沙漠重重包围,矿山林立,煤尘喧嚣飞扬的黑色煤都,如今在金色沙海的映衬下,柔润潋滟周…...
Red Hat重置root密码
目录 前言 1、使用rd.break参数重置root密码 2、使用安装盘重置root密码 前言 我们有时会忘记linux系统的root密码,有的不会重置密码只能重置系统了,下面介绍两种重置root密码的方法 1、使用rd.break参数重置root密码 1、启动系统,并在…...
应急响应之日志排查方法,Linux篇
应急响应之日志排查方法,Linux篇 1.Linux系统日志位置2.Linux日志分析方法3.其他日志的分析中间件日志其他服务日志1.Linux系统日志位置 Linux 系统中的日志一般存放在目录“/var/log/”下,具体的日志功能如下 /var/log/wtmp:记录登录进入、退出、数据交换、关机和重启,即…...
Midjourney AI 官方中文版已开启内测申请;OpenAI 正准备向公众发布一款新的开源语言模型。
🚀 Midjourney AI 官方中文版已开启内测申请,搭载在 QQ 频道上,召唤机器人进行作画。 Midjourney AI 官方中文版已开启内测申请,搭载在 QQ 频道上,召唤机器人进行作画。 可调用 MJ 和 Niji 的最新模型和所有参数&…...
DevOps 的道术法器,探寻 DevOps “立体化”实践之旅
引言 随着业务的发展,软件发布迭代的频率越来越高,传统的瀑布型模式已经不能满足快速交付的需求,DevOps 也因此受到持续关注。越来越多的公司开始接受并尝试使用 DevOps,期望能使得软件开发中的构建、测试与发布工作变得更加快捷…...
redis 7.x 缓存双写一致性的解决方案
一 redis缓存双写一致性 1.1 保证redis一致性的原则 1.给缓存设置过期时间,定期清理缓存并写回,是保证最终一致性的解决方案。使用场景:在数据读多写少的情况下作为缓存来使用。 我们可以对已存入缓存的数据设置过期时间,所有…...
真题详解(语法分析输入记号流)-软件设计(八十)
真题详解(求叶子结点数)-软件设计(七十九)https://blog.csdn.net/ke1ying/article/details/130787349?spm1001.2014.3001.5501 极限编程XP最佳实践: 测试先行、 按日甚至按小时为客户提供可运行的版本。 组件图的 插座 和插头…...
ffmpeg-编译汇总01
ffmpeg-编译汇总 ubuntu18.04下编译ffmpeg 所有安装目录 /usr/local 1.nasm编译器编译 (nasm-2.13.03解包) ./configure --prefix/usr/local make -j4 sudo make install 注意:能检测到可以不用设置下面的环境。 安装完成后,为了系统能自动找到nasm程序&…...
素雅的登录界面,简单而优雅
先上效果图: 再上代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>*, *::after, *::before {margin: 0;padding: 0;box-sizing: bord…...
Docker数据目录迁移方法
文章目录 前言一、停掉Docker服务?二、迁移docker数据到数据盘目三、备份原数据目录四、添加软链接五、重启docker服务六、确认服务没有问题后,删除备份的目录总结 前言 服务器上安装的docker服务,数据默认存储在/var/lib/docker目录&#x…...
C++——动态规划
动态规划是一种解决复杂问题的算法思想。它通过将问题分解为更小的子问题,并利用子问题的解来构建原问题的解。动态规划通常用于优化问题,其中需要找到最优解或最大值/最小值。 动态规划的核心思想是存储并重复使用子问题的解,以避免重复计算…...
【FAQ】视频编辑服务常见问题及解答
Q1问题描述 1、 访问贴纸等素材的时候提示“网络异常,请重试”怎么办? 2、 使用AI能力时,提示“errorCode:20124 errorMsg:Method not Allowed”? 解决方案 请做以下检查: 1、 在代码中检查鉴权信息是否已设置。如…...
JavaEE(系列8) -- 多线程案例(单例模式)
目录 1. 设计模式 2. 单例模式 -- 饿汉模式 3. 单例模式 -- 懒汉模式 4. 单例模式(懒汉模式-多线程) 1. 设计模式 什么是设计模式? 设计模式好比象棋中的 "棋谱". 红方当头炮, 黑方马来跳. 针对红方的一些走法, 黑方应招的时候有一些固定的套路. 按照套路…...
深度剖析,如何从底层代码层面理解Selenium和Appium的关联
目录 前言: 一、Selenium和WebDriver 二、Appium和WebDriver 三、Selenium和Appium的底层关联 1. Selenium WebDriver提供底层的浏览器控制机制 2. 利用JSON Wire Protocol通信协议实现通讯机制 四、实例代码 总结: 前言: Selenium和…...
【Three.js】第一、二章 入门指南和基础知识
01.介绍 Three.js 非常庞大,你可以用它做无数的事情。 在第一章中,我们将学习所有基础知识,例如创建第一个场景、渲染、添加对象、选择正确的材料、添加纹理、为所有内容制作动画,甚至将其放到网上。有些人可能会觉得这部分有点…...
力扣第 104 场双周赛 2681. 英雄的力量
原题链接力扣 题目大意:我开始看成连续子段了,写了个递归程序....... 一个数组任选一个子序列,子序列的力量值最大值平方*最小值。求所有子序列的力量和。 分析过程:如序列长度为n,子序列总数为2的n次幂,…...
在linux上创建crypto_LUKS格式的块设备
要在Linux上创建一个块设备并将其格式化为 crypto_LUKS,可以按照以下步骤进行: 创建一个空白文件,作为块设备的基础。可以使用 dd 命令创建指定大小的文件,例如: dd if/dev/zero of/path/to/device bs1M count100这将创…...
76.建立一个主体样式第二部分
上节课的时候我们完成的页面是这个样子! ● 之后我们通过绝对定位来解决位置定位的问题 .header-container {width: 1200px;margin: 0 auto;position: absolute;left: 50%;top: 50%; }header {height: 100vh;background-color: orange;position: relative; }● 之…...
Goframe项目实战:从数据库表到API接口的全链路开发指南(含避坑点)
Goframe项目实战:从数据库表到API接口的全链路开发指南(含避坑点)在当今微服务架构盛行的时代,Go语言因其高性能和并发优势成为后端开发的热门选择。而Goframe作为一款企业级的Go应用开发框架,提供了从数据库操作到API…...
③ AI副业第一步:如何找到适合自己的AI赚钱赛道
③ AI副业第一步:如何找到适合自己的AI赚钱赛道选对赛道,努力才有意义。选错赛道,越努力离钱越远。前言:为什么大多数人AI副业做不起来? 我观察了100想做AI副业的人,失败的原因高度一致: 失败路…...
百考通智能任务书:贴合你的选题,拒绝空话假大空
毕业设计任务书是高校教学管理中的关键环节,它不仅标志着研究工作的正式启动,更是后续开题、实施、论文撰写和答辩全过程的行动依据。然而,许多学生在撰写时常常因不熟悉本专业写作规范、技术表达能力有限,或缺乏权威模板参考而陷…...
基于ATtiny84的智能冰箱监控器:低功耗温度与门状态监测方案
1. 项目概述:一个装在树莓派盒子里的智能冰箱管家如果你家里有台老冰箱,或者对食物储存温度特别在意,总担心冰箱门没关严或者突然断电导致内部升温,那么这个自己动手做的“冰箱看门狗”项目就太适合你了。它本质上是一个高度定制化…...
2027考研全套资料免费分享
备战27考研最全备考资料整理完毕,一路走来深知备考搜集资料耗费大量时间,浪费不少精力。特意整理2027考研全科完整版资源,全部打包汇总,零基础考生直接拿来就能使用,省去四处搜集资料的烦恼。资料内含:&…...
从开题到定稿零焦虑:okbiye AI 论文写作,帮你把毕业季的 “大山” 变成坦途
okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 毕业季的深夜,宿舍台灯下的屏幕亮着刺眼的光,文档里的字数停留在三位数,而 deadline 正一天天逼近。你是…...
如何用Python脚本榨干百度网盘带宽:pan-baidu-download终极指南
如何用Python脚本榨干百度网盘带宽:pan-baidu-download终极指南 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download 在数字时代,百度网盘已成为我们存储和分享大型文件的默认…...
告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定
告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定每次UI微调就导致脚本大面积失效?分辨率变化让精心编写的自动化测试瞬间崩溃?作为从坐标点击转型到控件识别的实践者,我深刻理解这种挫败感。三年…...
将deepseek v4 pro集成到codex桌面APP中使用
📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域…...
AI 如何改变软件工程:Martin Fowler 视角 + 实战洞见
AI 如何改变软件工程:Martin Fowler 视角 实战洞见 AI(尤其是 LLM)是软件工程自高级语言(从汇编到 C/Fortran)以来最大的转变。它引入了非确定性(Non-deterministic)编程,改变了从编…...
