gpt4 book ai didi

php - 找不到两位数的月份 Laravel 中的 Carbon 中缺少数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:36 27 4
gpt4 key购买 nike

我正在 Laravel 5.4 上构建一个小型应用程序我正在尝试从前端的日期选择器小部件接收日期并将其解析为 Carbon 日期格式,如下所示:

Carbon\Carbon::parse($request->schedule)->toDateTimeString();

继续我之前的问题:How to format date receiving through Vuejs Datepicker in laravel ,我成功地将它添加到我的数据库中,并且在调用它时我在我的模型中放置了一个访问器并尝试以 diffForHumans() 格式获取日期,这是我之前的问题:A two digit month could not be found Data missing in Laravel , 每当我获取模型时,这都很好地工作,直到我没有将此 schedule 属性分配给任何其他变量,现在在 Controller 中检索模型并使用类似这样的值分配给 a 值:

public function getData()
{
$user = Auth::user();
$summaries = InteractionSummary::all();
$meetings = [];
foreach($summaries as $summary)
{
$company = [];
$tempData = $summary->interaction->where('user_id', $user->id)->get()->first();
if($tempData)
{
$meeting = Interaction::find($tempData->id);
$tempData->schedule = $meeting->schedule;
$meetings[] = $tempData;
}
}
return response()->json(['meetings' => $meetings], 200);
}

我遇到了同样的错误:

A two digit month could not be found Data missing

如果我这样做,同样的工作非常好:

public function getFutureData()
{
$user = Auth::user();
$currentTime = Carbon::now();
$interactions = $user->interaction->where('schedule', '>=', $currentTime);
$meetings = [];
foreach($interactions as $interaction)
{
$interaction->meeting = $meeting;
$meetings[] = $interaction;
}
return response()->json(['interactions' => $meetings], 200);
}

在我的模型中,名称为:Interaction 我正在定义我的属性,如下所示:

public function getScheduleAttribute($value)
{
return Carbon::parse($value)->diffForHumans();
}

编辑

仅供引用:我有我的 InteractionSummary 模型并且具有以下关系:

public function interaction()
{
return $this->belongsTo('App\Interaction');
}

最佳答案

您的问题很可能是由这一行引起的:

$tempData->schedule = $meeting->schedule;

原因是,您有这样的设置日期列(参见链接的问题):

protected $dates = [
'schedule', 'created_at', 'updated_at', 'deleted_at'
];

因此“日程”被视为日期。

当您通过 $meeting->schedule 检索您的日程安排日期时,该值会被您的修改器修改并以类似“1 小时前”的形式结束。

因此,对于 $tempData->schedule = $meeting->schedule;,您实际上是在尝试为 $tempData->schedule 设置无效日期。它会翻译成

$tempData->schedule = '1 hour ago';

当你在日期数组中将'schedule'标记为日期时,Laravel 正在尝试使用 Carbon 解析它。它期望日期采用模型的 $dateFormat 属性中指定的格式(默认为 Y-m-d H:i:s)。

关于php - 找不到两位数的月份 Laravel 中的 Carbon 中缺少数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963050/

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