laravel视图中的时间数据缺少意外数据

时间:2018-03-14 04:16:37

标签: mysql laravel php-carbon

在我的Horario模型中,我有以下内容:

protected $fillable = [ "inicio", "fin", "tipo" ];

protected $dates = [
    'created_at', 
    'updated_at', 
    'inicio', 
    'fin'
];

在控制器中我保存时间:

$horario = new Horario;
$horario->inicio = Carbon::createFromFormat('H:i', $request->inicio);
$horario->fin = Carbon::createFromFormat('H:i', $request->fin);
$horario->tipo = $request->tipo;
$horario->save();

如果inicio和fin是时间类型列,我可以将它保存在数据库中(格式为H:i):

horario record on mysql

当我尝试在我的视图中显示时,laravel会抛出错误:

ErrorException
Unexpected data found.
Unexpected data found.
Data missing (View: C:\wamp64\www\plataforma-
foodsys\resources\views\opciones_de_aplicacion.blade.php)

在我看来,我有:

<td>{{$horario->inicio->format("H:i")}}</td>
<td>{{$horario->fin->format("H:i")}}</td>

我无法弄清楚为什么它会抛出异常,记录在桌面上保存得很好,我正在尝试以正确的时间格式对其进行格式化。任何想法为什么会这样?

1 个答案:

答案 0 :(得分:0)

这是因为Laravel不会将'H:i'格式识别为Carbon(因为它不是日期)。

它会尝试将其转换为H:i的{​​{3}}函数实例,该函数不接受inicio格式。

我建议将它们改为asDateTime($val) (source)

fin数组中移除protected $datesuse Carbon\Carbon; ... public function getInicioAttribute($val) { return Carbon::parse($val); } public function getFinAttribute($val) { return Carbon::parse($val); } 并将其放入您的模型中:

*

您的代码应该有效。