gpt4 book ai didi

php - Laravel 哪里 Carbon addMinutes 不起作用

转载 作者:可可西里 更新时间:2023-11-01 00:29:20 28 4
gpt4 key购买 nike

我有一个表示事件的表,每个事件都有一个通知期,例如如果当前距离事件开始时间不到 24 小时,您将无法预订该事件。

我正在尝试为此创建一个“可预订”范围,但失败了。具体来说,在下面,'time'代表事件发生的时间(时间戳),'notice'代表通知时间,以分钟为单位(整数),两者都是Events模型中的列。我发现 Laravel 没有读取“通知”变量,即将其视为 0。任何指导将不胜感激,谢谢。

public function scopeBookable($q) {
$q->where('time','>',Carbon::now()->addMinutes('notice'))->orderBy('time','ASC')->get();
}

最佳答案

addMinutes() 方法需要一个整数而不是字符串。

范围选项

您可以将通知时间传递给作用域。

// Controller
$notice = 60;
Events::bookable($notice);

// Model
public function scopeBookable($q, $notice=0) {
$q->where('time','>',Carbon::now()->addMinutes($notice))->orderBy('time','ASC')-get();
}

收藏选项

您始终可以在 SQL 中执行自连接并在子查询中检查 notice 的值。另一种选择是返回经过过滤的 Eloquent 集合。

public function scopeBookable() {
return Events::all()->filter(function($event) {
return $event->time > Carbon::now()->addMinutes($event->notice)
});
}

关于php - Laravel 哪里 Carbon addMinutes 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44227007/

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