无法在 Laravel 中设置 Carbon 变量
Cannot set Carbon variable in Laravel
我想像这样将一个项目的值设置为小时和分钟:
foreach ($items as $item){
if($item->created_at->gte($begin_date) && $item->created_at->lte($end_date))
{
$item->created_at = $item->created_at->format('H:m');
$sorted_items[] = $item;
}
}
当我使用 dd($item->created_at->format('H:m'))
时,它会正确显示小时和分钟,但是当我尝试将 $item->created_at 设置为小时和分钟时,它会抛出此错误:
InvalidArgumentException in Carbon.php line 582:
Unexpected data found.
Data missing
我觉得不能用created_at
,这个是在model.php
里定义的。如果你使用另一个属性,比如 created_at_formatted
它应该可以工作。
$item->created_at_formatted = Carbon::createFromFormat('Y-m-d H:i:s', $item->created_at)->format('H:m');
Laravel 在你的模型中使用 protected $dates;
来分配一个 Carbon 实例,所以每次你调用 $item->created_at
它都会 return Carbon::parse($item->created_at)
。这无法完成,因为您将数据更改为不正确的值 (H:m
)。
希望这有效!
我想像这样将一个项目的值设置为小时和分钟:
foreach ($items as $item){
if($item->created_at->gte($begin_date) && $item->created_at->lte($end_date))
{
$item->created_at = $item->created_at->format('H:m');
$sorted_items[] = $item;
}
}
当我使用 dd($item->created_at->format('H:m'))
时,它会正确显示小时和分钟,但是当我尝试将 $item->created_at 设置为小时和分钟时,它会抛出此错误:
InvalidArgumentException in Carbon.php line 582: Unexpected data found. Data missing
我觉得不能用created_at
,这个是在model.php
里定义的。如果你使用另一个属性,比如 created_at_formatted
它应该可以工作。
$item->created_at_formatted = Carbon::createFromFormat('Y-m-d H:i:s', $item->created_at)->format('H:m');
Laravel 在你的模型中使用 protected $dates;
来分配一个 Carbon 实例,所以每次你调用 $item->created_at
它都会 return Carbon::parse($item->created_at)
。这无法完成,因为您将数据更改为不正确的值 (H:m
)。
希望这有效!