laravel时间戳对象是怎么实现的?

laravel updated_at字段返回是不是一个对象?
因为在使用过程中可以通过 updated_at->format('Y-m-d')函数格式化时间格式。
我想仿照这个方法做一个行政区域的显示。
在数据库中有province字段,保存的是省的地区代码,但是在显示的时候需要大多数显示成汉字而有时候需要显示成地区代码,还有时候可能需要获取这个地区的行政级别等等,类似需要格式化的操作。
那么在laravel中有没有类似的写法,可以自己对任意字段定义这种格式化的方法呢

阅读 5.2k
4 个回答

Laravel把updated_at里面的时间戳转换成Carbon对象,format()函数是从Carbon对象来的。

为了实现你描述的province功能,你要么自己写一个Province类,加你需要的函数,然后用你数据库内的数据来初始化这个类的对象,要么找一个第三方插件,并用这个插件来求省份的几种写法。

时间戳格式化依赖于时间戳格式化函数本身或者框架重构的其他方法,即使是对象传的值。
你的要求更适合由地区代码,地区名,行政级别组的表,最简单的方案就是数据库读取后直接用对象->对象元素或者直接数组取吧。

model类里面有这功能.

你可以在自己的model里面加个方法, 方法名如下: get你的属性名Attribute($value)

比如你的省是 province, 那方法就叫 getProvinceAttribute($value), 你可以在这个里面转换数据.

同样, 你可以在setProvinceAttribute($value) 里面转换保存的数据.

laravel中时间戳对象是依赖于carbon实现的,你要实现的这种格式化操作最好自己封装一个类去实现。这种其实数据定制化,可以模拟类似的实现方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题