Php Laravel刀片不遵守日期强制转换格式
我在用户表中有一个出生日期字段Php Laravel刀片不遵守日期强制转换格式,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我在用户表中有一个出生日期字段 $table->date('dob'); 用户模型具有强制转换 protected $casts = [ 'dob' => 'date:d-m-Y' ]; 在刀刃上 {{$user->dob}} 我期待着2019年11月26日 但发现它显示2019-11-26 00:00:00 为什么显示时需要在blade中重新格式化日期 我错过了什么? 或者我所期望的不是格式化的目的?protected$casts=[…]告诉La
$table->date('dob');
用户模型具有强制转换
protected $casts = [
'dob' => 'date:d-m-Y'
];
在刀刃上
{{$user->dob}}
我期待着2019年11月26日
但发现它显示2019-11-26 00:00:00
为什么显示时需要在blade中重新格式化日期
我错过了什么?
或者我所期望的不是格式化的目的?
protected$casts=[…]
告诉Laravel将属性视为Carbon
实例,但您仍然需要格式化它们:
{{ $user->dob->format('d-m-Y') }}
据我所知,没有一种方法可以输出默认格式,除非您使用访问器
:
在您的User.php
模型中:
public function getDobFormattedAttribute(){
return $this->dob->format('y-m-D');
}
那么在你看来,
{{ $user->dob_formatted }}
日期转换仅用于数组或JSON,如下所述: 您可以尝试通过mutator执行此操作:
protected$dates=[
‘dob’,//它将是‘Y-m-dh:i:s’
];
受保护的$dateFormat='d-m-Y';//但你可以重新定义它
仅当您使用->toArray()
或->toJson()
对所讨论的对象或集合(从此处的文档中)执行此操作时才有效
如果没有使用上述任何函数调用,可以在模型中创建一个访问器或getter方法
use Carbon\Carbon; // import the Carbon lib.
protected $dates = ['dob'];
public function getDobAttribute($value)
{
return Carbon::createFromFormat('d-m-Y', $value);
}
谢谢你的快速回复。因此,强制转换格式仅适用于数组或JSON。首先我使用$casts=['dob'=>'date'];但是它没有通过assertDatabaseHas测试。需要查看您的解决方案是否通过测试…这也会影响在处创建的
和在
处更新的是否存在。如果在
处创建影响,则会导致问题。所以这不是解决这个问题的好方法。谢谢。。。但是我在寻找一些东西,这样我就不需要写这些。。。