laravel 获取数据而不应用强制转换

use*_*140 3 casting laravel

我在做

Model::get()->toArray() 
Run Code Online (Sandbox Code Playgroud)

从我的表中获取所有数据,但模型对日期进行了转换。

protected $casts = ['date' => 'datetime:D, M d Y'];
Run Code Online (Sandbox Code Playgroud)

我希望能够在不应用强制转换和仅使用原始日期时间格式的情况下获取所有数据。有没有办法控制何时应用演员。

Ija*_*een 7

您可以按原样获取所有属性,方法是使用

Model::get()->transform(function ($item) {
    return $item->getOriginal();
}))->toArray();
Run Code Online (Sandbox Code Playgroud)

也可以getOriginal()用作

$model->getOriginal('created_at') 
Run Code Online (Sandbox Code Playgroud)

在任何模型上,以在需要时获取原始值。

注意:getOriginal()将包含$hidden模型的所有属性。

  • Laravel 7+ 您可以使用 getRawOriginal() 方法。 (3认同)

cby*_*016 6

Laravel 7+

正如 Sam 在 Laravel 7+ 中提到的,您可以使用:

$model->getRawOriginal('created_at')
Run Code Online (Sandbox Code Playgroud)