gpt4 book ai didi

php - 根据旧记录的值从查询中获取新记录

转载 作者:行者123 更新时间:2023-11-29 16:42:54 24 4
gpt4 key购买 nike

我有一个查询范围,用于检查必须根据当前时间将哪些匹配添加到查询中。 如果比赛的 start_date 介于本周二和下周二之间,并且还需要 status 字段为 SCHEDULED,则会显示该比赛。

当比赛日结束时,必须加载一组新的比赛。这可以是星期日或星期一。现在我注意到下一个比赛日将于 11 月 24 日开始,这意味着 11 月 13 日星期二,不会将任何比赛添加到查询中。如果我仍然希望在最后一场比赛结束后的第二天显示即将到来的比赛,那么使用时间将不是一个有用的方法。

我的目标是在所有当前比赛结束后始终添加新的即将举行的比赛。

代码

查询

 $matches = Match::thisWeekScheduled()->get();

根据时间获取正确匹配的范围

public function scopeThisWeekScheduled($query) {
$start_date = now()->previous(Carbon::TUESDAY);
$end_date = now()->next(Carbon::TUESDAY);
return $query->whereDate('date','>', $start_date)->whereDate('date','<', $end_date)->where('status', 'SCHEDULED');
}

匹配迁移

Schema::create('matches', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->integer('match_id');
$table->string('homeTeam');
$table->string('awayTeam');
$table->string('status');
$table->dateTime('date');
$table->integer('matchday');
$table->integer('homeScore')->nullable();
$table->integer('awayScore')->nullable();
});

// last match of this matchday

// match_id = 233136
// homeTeam = Arsenal FC
// awayTeam = Wolverhampton Wanderers FC
// status = FINISHED
// date = 2018-11-11 16:30:00
// matchday = 12
// homeScore = 1
// awayScore = 1

// First upcoming match

// match_id = 233144
// homeTeam = Fulham FC
// awayTeam = Southampton FC
// status = SCHEDULED
// date = 2018-11-24 15:00:00
// matchday = 13
// homeScore = NULL
// awayScore = NULL

额外信息:

  • 我的数据库中有本赛季的每场比赛。比赛有一个SCHEDULEDFINISHED 状态。
  • 我正在使用一个计划任务,该任务从 API 获取更新的比赛信息。当 API 具有不同的值时,比赛状态会更新。
  • 一个比赛日有 10 场比赛

关于解决我的问题有什么建议吗?

最佳答案

$matches = Match::where('created_at', '>=', Carbon::now()->subDays(14)->toDateTimeString());

这里你可以使用 subDays() 的值,因为你想显示前几天..我使用了 14 天

关于php - 根据旧记录的值从查询中获取新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255201/

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