Laravel 手动开关 Eloquent 修改器的操作方法


Posted in PHP onDecember 30, 2019

测试框架版本是 Laravel 6.5, Eloquent 修改器使用可以参阅 -> 查看文档

修改器的手动开关的场景就是差异化的返回数据,例如在后台管理的时候,图片地址要相对路径,然后 app 端期望返回全路径的地址,这个时候就需要手动开启和关闭了。

大概操作就是在模型中声明一个静态变量,然后修改器中判断这个静态变量值是 true/false; 如果是 true 则处理,如果为 false 就不处理,具体操作:

public static $modify = true;
  /**
   * 获取用户的姓名.
   * 判断是否需要修改及 $value 是不是空值
   * @param string $value
   * @return string
   */
  public function getFirstNameAttribute($value)
  {
    return self::$modify && $value ? ucfirst($value) : $value;
  }

示例代码是默认开启修改器的,无需的话可以关闭修改器,在具体业务层使用前关闭就可以的

User::$modify = false;  // 关闭修改器
return $user:findOrFail(1);

如果不手动关闭,想获取原数据,而不是被修改之后的值,也可以这样获取原始值:

$user = User::find(1);
return $user->getOriginal('first_name');

总结

以上所述是小编给大家介绍的Laravel 手动开关 Eloquent 修改器的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
FleaPHP的安全设置方法
Sep 15 PHP
PHP XML数据解析代码
May 26 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
Chrome Web App开发小结
Sep 04 PHP
php文件读取方法实例分析
Jun 20 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
PHP学习记录之数组函数
Jun 01 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
PHP常用字符串函数用法实例总结
Jun 04 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 #PHP
PHP单元测试配置与使用方法详解
Dec 27 #PHP
PHP全局使用Laravel辅助函数dd
Dec 26 #PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 #PHP
PHP高并发和大流量解决方案整理
Dec 24 #PHP
thinkphp5实现微信扫码支付
Dec 23 #PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 #PHP
You might like
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
python实现石头剪刀布程序
2021/01/20 Python
python如何制作缩略图
2019/04/30 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
先进事迹材料怎么写
2014/12/30 职场文书
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
Go语言编译原理之源码调试
2022/08/05 Golang