gpt4 book ai didi

mysql - Laravel View 中的时间数据意外丢失

转载 作者:行者123 更新时间:2023-11-29 17:51:44 24 4
gpt4 key购买 nike

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

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

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

在 Controller 中,我按如下方式保存时间:

$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

当我尝试在我的 View 中显示它时,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>

我不明白为什么它会抛出异常,记录在 table 上保存得很好,我正在尝试以正确的时间格式对其进行格式化。有什么想法为什么会发生这种情况吗?

最佳答案

这是因为 Laravel 无法将“H:i”格式识别为日期(因为它不是日期)。

它将尝试将其转换为 Carbon 的实例 asDateTime($val) (source)函数,不接受 H:i 格式。

我建议将它们实现为 accessors相反。

protected $dates 数组中删除 iniciofin 并将其放入您的模型中:

use Carbon\Carbon;

...

public function getInicioAttribute($val)
{
return Carbon::parse($val);
}

public function getFinAttribute($val)
{
return Carbon::parse($val);
}

你的代码应该可以工作。

关于mysql - Laravel View 中的时间数据意外丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49269704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com