在我的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):
当我尝试在我的视图中显示时,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>
我无法弄清楚为什么它会抛出异常,记录在桌面上保存得很好,我正在尝试以正确的时间格式对其进行格式化。任何想法为什么会这样?
答案 0 :(得分:0)
这是因为Laravel不会将'H:i'格式识别为Carbon
(因为它不是日期)。
它会尝试将其转换为H:i
的{{3}}函数实例,该函数不接受inicio
格式。
我建议将它们改为asDateTime($val)
(source)。
从fin
数组中移除protected $dates
和use Carbon\Carbon;
...
public function getInicioAttribute($val)
{
return Carbon::parse($val);
}
public function getFinAttribute($val)
{
return Carbon::parse($val);
}
并将其放入您的模型中:
*
您的代码应该有效。