Laravel 对created_at 日期字段的强制转换未应用

Anc*_*end 2 laravel laravel-5

我的用户模型中有一个created_at 列,我希望在刀片模板中访问它时采用不同的格式,以便它更具可读性。解决这个问题的最佳方法似乎是使用演员表。

我创建了一个像这样的演员表:

     protected $casts = [
        'email_verified_at' => 'datetime',
        'created_at'  => 'm-d-y',
    ];
Run Code Online (Sandbox Code Playgroud)

...在我的控制器中,我得到一个用户,然后执行以下操作:

dd($member->toArray());
Run Code Online (Sandbox Code Playgroud)

现在,当获取用户记录并执行$user->toArray()created_at列时,仍然采用原始的未转换格式,似乎根本没有使用转换,知道这是为什么吗?

sac*_*mar 5

您可以使用以下代码片段(在模型中)定义日期列的格式:

protected $dateFormat = 'm-d-Y';
Run Code Online (Sandbox Code Playgroud)

如果更新单个时间戳字段,请使用以下内容。

protected $casts = [
    'created_at'  => 'date:m-d-Y',
    // 'updated_at' => 'datetime:Y-m-d H:00',
];
Run Code Online (Sandbox Code Playgroud)