添加碳模型自定义时间戳


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

当I 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
错误:

发现意外数据。找不到分隔符号数据缺失的

将start_at添加到模型的$dates属性。您需要为created_at或updated_at属性编写自定义setter或getter。

protected $dates = [
        'start_at',
    ];

提到start_at为碳实例。

在模型中添加以下代码

protected $dates = [
        'start_at ',
    ];