本期视频登录后即可观看
Laravel 5.5 基础
31 集视频
4小时18分钟
时间是项目中一个非常重要的问题,时间的显示在很多框架中也是一件很复杂的事情,但是在Laravel中,Carbon工具让时间的处理变得非常的简单,我们也可以非常方便得将一个字符串类型的时间对象转换成Carbon对象,本节视频咱们就看一下如何使用Carbon类处理我们的时间对象。本视频基于Laravel 5.5长期支持版本。
<div>{{ $post->published_at }}</div>
published_at 这个字段,在 laravel 6.x 获取不了?其它字段正常获取。
在文章模型里 设置了 protected $dates = ['published_at']; 时间显示出来了。
可是新建的帖子无法根据设定的时间 > 或 < 来显示,事实上,新建帖子无法显示。
这个问题应该不会出现,你可以检查一下数据库中这个字段的数据是否存在,看是否插入成功了?目前从你的描述来看可能会是这里的问题
我检查过,数据库里有这个字段。获取所有数据,其它字段内容可以显示,published_at 字段内容无法显示。
在模型和控制器里写入方法后,published_at 字段内容可以显示,但只显示之前伪造的假数据内容和published_at时间。
新建帖子,不管有没设定时间,一律不显示,更没有 published_at 这个字段。
我注释了 published_at 字段相关内容,如输出和逻辑,之前创建的贴子就都显示出来了。
先忙吧,方便的时候也许可以用 laravel 6.x 试一试。
laravel5以上的版本要用$casts 声明
protected $casts = [ 'published_at' => 'datetime:Y-m-d', ];
published_at使用Carbon::createFromFormat转化成Carbon对象后存入数据库,取出来不是Carbon对象?
你这家伙够懒,自己试试吧立马不就知道了。
哈哈,取出来是datetime格式的字符串。寻思着使用
public function getPublishedAtAttribute($date)
{
return $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d H:m:i',$date);
}
将其转化成Carbon对象。确实能转换成对象,但是取出来的时间跟创建时间的时间相差太远,但是数据库里面确实是创建的时间。不知道为啥?
捣鼓一圈,最后还是用楼上的@Donald Trump Trump方法搞定。太伤了...