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中使用Oracle数据库(2)
Oct 09 PHP
如何写php程序?
Dec 08 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
Memcached常用命令以及使用说明详解
Jun 27 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
php报错502badgateway解决方法
Oct 11 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
加载 Javascript 最佳实践
2011/10/30 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
详解Swift中属性的声明与作用
2016/06/30 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
Python try except finally资源回收的实现
2021/01/25 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
会计自我鉴定
2014/02/04 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
妇女工作先进事迹
2014/08/17 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
出纳年终工作总结2014
2014/12/05 职场文书