本期视频登录后即可观看

Laravel 5.5 基础

31 集视频
4小时18分钟

时间是项目中一个非常重要的问题,时间的显示在很多框架中也是一件很复杂的事情,但是在Laravel中,Carbon工具让时间的处理变得非常的简单,我们也可以非常方便得将一个字符串类型的时间对象转换成Carbon对象,本节视频咱们就看一下如何使用Carbon类处理我们的时间对象。本视频基于Laravel 5.5长期支持版本。

空中的鱼儿 2019.10.09 08:08

<div>{{ $post->published_at }}</div>

published_at 这个字段,在 laravel 6.x 获取不了?其它字段正常获取。

在文章模型里 设置了 protected $dates = ['published_at']; 时间显示出来了。

可是新建的帖子无法根据设定的时间 > 或 < 来显示,事实上,新建帖子无法显示。

国营 2019.10.09 13:49

这个问题应该不会出现,你可以检查一下数据库中这个字段的数据是否存在,看是否插入成功了?目前从你的描述来看可能会是这里的问题

空中的鱼儿 2019.10.10 01:39

我检查过,数据库里有这个字段。获取所有数据,其它字段内容可以显示,published_at 字段内容无法显示。

在模型和控制器里写入方法后,published_at 字段内容可以显示,但只显示之前伪造的假数据内容和published_at时间。

新建帖子,不管有没设定时间,一律不显示,更没有 published_at 这个字段。

我注释了 published_at 字段相关内容,如输出和逻辑,之前创建的贴子就都显示出来了。

先忙吧,方便的时候也许可以用 laravel 6.x 试一试。

Donald Trump Trump 2020.10.10 14:24

laravel5以上的版本要用$casts 声明

protected $casts = [ 'published_at' =&gt 'datetime:Y-m-d', ];

ShiVIP 2021.04.08 03:02

published_at使用Carbon::createFromFormat转化成Carbon对象后存入数据库,取出来不是Carbon对象?

国营 2021.04.08 03:59

你这家伙够懒,自己试试吧立马不就知道了。

ShiVIP 2021.04.08 07:19

哈哈,取出来是datetime格式的字符串。寻思着使用

public function getPublishedAtAttribute($date)

{

return $this-&gtattributes['published_at'] = Carbon::createFromFormat('Y-m-d H:m:i',$date);

}

将其转化成Carbon对象。确实能转换成对象,但是取出来的时间跟创建时间的时间相差太远,但是数据库里面确实是创建的时间。不知道为啥?

捣鼓一圈,最后还是用楼上的@Donald Trump Trump方法搞定。太伤了...

微信扫码登录