laravel无需应用强制转换即可获取数据

时间:2018-11-28 16:01:43

标签: laravel casting

我在做

Model::get()->toArray() 

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

protected $casts = ['date' => 'datetime:D, M d Y'];

我希望能够在不应用强制转换而仅应用原始日期时间格式的情况下获取所有数据。有没有一种方法可以控制何时应用强制转换。

3 个答案:

答案 0 :(得分:2)

您可以通过使用

获得所有属性
Model::get()->transform(function ($item) {
    return $item->getOriginal();
}))->toArray();

还可以将getOriginal()用作

$model->getOriginal('created_at') 

在任何模型上均可随时获取原始值。

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

答案 1 :(得分:2)

就像Sam在Laravel 7+中提到的那样,您可以使用:

$model->getRawOriginal('created_at')

答案 2 :(得分:1)

getOriginal('date')getRawOriginal('date') 返回未修改的值!

如果你想在不强制转换的情况下获取当前值,可以使用getAttributes()['date']