我的模型是:
protected $casts = [
'date' => 'date',
];
laravel是否有设置演员格式的能力,比如:
protected $casts = [
'date' => 'date_format:d/m/yyyy',
];
?
编辑
我试过这个:
模型中:
protected $dateFormat = 'm/d/Y';
protected $dates = ['driver_expiration', 'created_at', 'updated_at', 'deleted_at'];
protected $casts = [
'driver_expiration' => 'date',
];
我将日期(driver_expiration)保存为"01/012016",但日期保存为0000 - 00 - 00。
laravel文件:https://laravel.com/docs/5.1/eloquent-mutators告诉我们$dateFormat仅适用于时间戳("创建时间"、"更新时间"、"删除时间")
8条答案
按热度按时间nkoocmlb1#
在拉拉威尔5.6之后,
您可以单独自定义Eloquent日期和日期时间转换的格式:
将模型序列化为数组或JSON数据时使用此格式
ha5z0ras2#
除了强制转换日期格式,您还可以使用mutators设置您喜欢的格式:
例如,如果列名为
date
,则可以将以下函数添加到模型中:setDateAttribute
的格式始终为set[ColumnName]Attribute
(使用CamelCase)。$this->attributes['date']
部分中的date
还必须与表中的实际列名匹配。当您
create
或update
数据库中的记录时,格式将由上述函数自动更改。备注:您可能需要将
use Carbon\Carbon
语句添加到模型顶部,才能使用碳库。Take a look at other examples here.
或者,可以使用以下命令定义
date
列的格式:6bc51xsx3#
只需添加到模型中:
Eloquent方法最初返回一个Carbon示例,因此您可以获取该示例并调用其format()方法。如果您希望将此解决方案应用于所有模型,只需创建一个从Eloquent扩展的新类,并将此方法放在那里,然后您就可以从这个新类扩展模型。
js4nwp544#
我创建新的模型属性:
然后我更新了我的基本模型,如下所示:
这个解决方案对我很有效。代码可以移到trait中。格式可以放在$datesConvert Format = 'd/m/Y';
kse8i1jr5#
对于我来说,我只是把下面的代码放在我的
Model
中,它将格式化所有日期6g8kf2rb6#
类型转换不受Collection对象的影响。它用于json和数组格式。如果你需要一个单独的类型转换,你可以使用
91zkwejq7#
试试这个:
h5qlskok8#
拉腊维尔10.x
模型中