首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Eloquent:修改器

本文2253.5字,需要5.63分钟

感觉好长时间没写东西了,一方面主要是自己的角色发生了变化,每天要面对各种各样的事情和突发事件,不能再有一个完整的长时间让自己静下来写代码,或者写文章。

另一方面现在公司技术栈不再停留在只有 Laravel + VUE 了,我们还有小程序、APP 等开发,所以我关注的东西也就多了。

接下来我还是会继续持续「高产」,把写技术文章当作一个习惯,坚持下去。

好了,废话不多说,今天来说一说「」。

一直想好好研究下 Eloquent。但苦于 Eloquent 有太多可研究的,无法找到一个切入点。前两天看一同事好像对这个「」了解不多,所以今天就拿它作为入口,扒一扒其实现源代码。

首先还是拿一个 Demo 为例:

Demo

这个代码比较简单,就是通过已有属性,计算 Baby 几岁了,得到属性。

前端就可以直接拿到结果:

同样的,还有方法来定义一个修改器。

源代码

读代码还是从使用入手,如上通过调用属性,这个属性没在类中定义,所以只能通过 PHP 的魔术方法调用了。

我们看看类的方法:

好了,我们开始解读源代码了:

重点自然就在第二个上,主要判断数组中是否包含该属性,如果没有,则会执行函数:

这就对上了我们的中自定义的函数,也就返回了。

接下来就是执行函数,进而执行函数:

好了,到此我们基本就知道了获取自定义的流程了。

相信解析也是很简单的。

总结

好长时间没写东西了,先从最简单的入手,练练手。解析需要费很多脑细胞,接下来的一段时间我会围绕着这个主题好好研究下去,尽可能的全部解读一遍::

参考

Eloquent: 修改器 https://laravel-china.org/docs/laravel/5.7/eloquent-mutators/2297

__get()使用说明 http://php.net/manual/zh/language.oop5.overloading.php#object.get

未完待续coding01 期待您继续关注

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190105G13IAA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券