在模型中为自定义时间戳添加 Carbon
Adding Carbon in Model for custom timestamp
我在数据库中创建了自己的时间戳(在 updated_at 和 created_at 旁边)并用播种器填充了它。示例数据如下所示:
| id |user|start_at (my timetable)| | created_at | updated_at
| 194 | 47 | 2015-01-21 00:00:00 | | 2016-09-25 16:48:48 | 2016-09-25 16:48:48 |
我还在我的模型中添加了:
public function getCreatedAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
public function getUpdatedAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
public function getStartAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
现在我在我的控制器中尝试:
$val->updated_at->diffForHumans(); // works
$val->created_at->format('d M Y'); // works
$val->start_at->format('d M Y'); // doesn't work
当我var_dump
:
start_at:
public 'date' => string '2016-10-12 00:00:00.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
created_at:
+"date": "2016-09-25 16:48:48.000000"
+"timezone_type": 3
+"timezone": "UTC"
更新:现在我添加了protected $dates = ['start_at']
dd($val->start_at); // gives '2014-08-03 00:00:00'
dd($val->start_at->format('d M Y') // fails
错误:
Unexpected data found.
The separation symbol could not be found
Data missing
将 start_at 添加到模型的 $dates 属性。您需要为 created_at 或 updated_at 属性编写自定义设置器或 getter。
protected $dates = [
'start_at',
];
提到 start_at 作为碳结构。
在您的模型中添加以下代码
protected $dates = [
'start_at ',
];
希望这会奏效。
我在数据库中创建了自己的时间戳(在 updated_at 和 created_at 旁边)并用播种器填充了它。示例数据如下所示:
| id |user|start_at (my timetable)| | created_at | updated_at
| 194 | 47 | 2015-01-21 00:00:00 | | 2016-09-25 16:48:48 | 2016-09-25 16:48:48 |
我还在我的模型中添加了:
public function getCreatedAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
public function getUpdatedAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
public function getStartAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
现在我在我的控制器中尝试:
$val->updated_at->diffForHumans(); // works
$val->created_at->format('d M Y'); // works
$val->start_at->format('d M Y'); // doesn't work
当我var_dump
:
start_at:
public 'date' => string '2016-10-12 00:00:00.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
created_at:
+"date": "2016-09-25 16:48:48.000000"
+"timezone_type": 3
+"timezone": "UTC"
更新:现在我添加了protected $dates = ['start_at']
dd($val->start_at); // gives '2014-08-03 00:00:00'
dd($val->start_at->format('d M Y') // fails
错误:
Unexpected data found. The separation symbol could not be found Data missing
将 start_at 添加到模型的 $dates 属性。您需要为 created_at 或 updated_at 属性编写自定义设置器或 getter。
protected $dates = [
'start_at',
];
提到 start_at 作为碳结构。
在您的模型中添加以下代码
protected $dates = [
'start_at ',
];
希望这会奏效。