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 相关文章推荐
用PHP连mysql和oracle数据库性能比较
Oct 09 PHP
再次研究下cache_lite
Feb 14 PHP
封装一个PDO数据库操作类代码
Sep 09 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
PHP实现原比例生成缩略图的方法
Feb 03 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
Python实现的tab文件操作类分享
2014/11/20 Python
Python计算一个文件里字数的方法
2015/06/15 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
分析python请求数据
2018/08/19 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
Linux中如何用命令创建目录
2015/01/12 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
植树节标语
2014/06/27 职场文书
感恩教师主题班会
2015/08/12 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Python进程池与进程锁之语法学习
2022/04/11 Python