首页 > 解决方案 > Laravel 刀片不尊重日期转换格式

问题描述

我在用户表中有一个出生日期字段

$table->date('dob');

用户模型有 Casts

protected $casts = [
        'dob' => 'date:d-m-Y'
    ];

在刀片中,

{{$user->dob}}

我期待 26-11-2019 但发现它显示 2019-11-26 00:00:00

为什么显示时需要在刀片中再次格式化日期?

我错过了什么?或者我所期待的,不是格式化的目的吗?

标签: phplaravellaravel-blade

解决方案


protected $casts = [...]告诉 Laravel 将属性视为Carbon实例,但您仍然需要格式化它们:

{{ $user->dob->format('d-m-Y') }}

据我所知,没有办法输出默认格式,除非您使用accessor

在您的User.php模型中:

public function getDobFormattedAttribute(){
  return $this->dob->format('y-m-D');
}

那么在你看来:

{{ $user->dob_formatted }}

推荐阅读