如题,已经在模型中定义了属性转换如下:
protected $casts = [
'start_time' => 'datetime:Y-m-d',
'end_time' => 'datetime:Y-m-d',
];
但是在 blade 中调用时无效:
{{ $user->start_time }}
最终显示:
其实这是 laravel 的设计机制,属性转换只有在模型被序列化为数组或者json格式时才生效。
我们可以通过访问器来解决这个问题,在模型中定义如下代码:
public function getStartTimeFormattedAttribute(){
return $this->start_time->format('Y-m-d');
}
然后在 blade 中调用:
{{ $user->start_time_formatted }}
其实,我们也可以直接在 blade 中链式调用 carbon 的方法的,不需要在模型中定义访问器,而是直接使用下面的方式:
{{ $user->start_time->format('Y-m-d') }}