"Casting" 功能 ($casts) 是否仅在 Laravel 中使用 Eloquent 有效

Is the "Casting" feature ($casts) valid only using Eloquent in Laravel

我尝试使用 $casts 更改模型中的日期格式:

protected $casts = [
    'created_at'  => 'datetime:Y-m-d H:i',
    'updated_at' => 'datetime:Y-m-d H:i'
];

当我使用 Eloquent 检索数据时它有效:

$clients = Client::all();
return $clients;

但它不适用于查询生成器!

$clients = DB::table('clients')->get();
return $clients;

在查询生成器中,您正在使用 DB::table 它不使用 Laravel 模型,并且您正在将此强制转换代码写入您的 Laravel 模型。它显然永远行不通。它们是苹果和橘子。

如果您使用转换代码,Laravel 仅在您获取模型并使用此字段时运行此代码。在此之前 它不会更改值。

你想在那里实现什么目标?如果你给我们更详细的代码我会帮助你。