- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个表示事件的表,每个事件都有一个通知期,例如如果当前距离事件开始时间不到 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/
我的方法的目的是获取当前时间,并将其设置回 20 分钟。据我所知,我的方法是正确的,但输出显示了其他内容。 这是我的代码: DateTime currentTime = DateTime.Now; d
在 Laravel 环境中,我有一组时间,我正在增加分钟数,但它并没有给我预期的结果。 在下面的 array_map 函数中发生了一些奇怪的 addMinutes $d = array_map(fun
我有一个表示事件的表,每个事件都有一个通知期,例如如果当前距离事件开始时间不到 24 小时,您将无法预订该事件。 我正在尝试为此创建一个“可预订”范围,但失败了。具体来说,在下面,'time'代表事件
我目前在使用 LINQ->Entites w/Entity Framework v 4.2 和 T4 生成的对象上下文时遇到问题。我比较了解 LINQ 查询在针对数据库执行之前如何转换为存储表达式,但
这个问题在这里已经有了答案: Why DateTime.AddHours doesn't seem to work? (8 个答案) 关闭 6 年前。 我将创建一个表单,用户必须在其中输入日期和时间
我是一名优秀的程序员,十分优秀!