Maison > Questions et réponses > le corps du texte
J'ai un modèle Round pour un jeu PHP Laravel. Chaque tour a une heure de début (DATETIME) et une durée en minutes (INT) :
id | game_id | duration | start_time 1 | 3 | 40 | 2022-06-22 19:29:26 2 | 3 | 20 | 2022-06-24 00:02:55 3 | 1 | 10 | 2022-06-25 10:56:05
Un jeu aura plusieurs tours, si start_time +uration > Carbon::now()
alors un tour se termine
Maintenant, je n'arrive pas à comprendre comment récupérer tous les tours d'une partie qui est toujours en cours
J'ai pensé à quelque chose de similaire, mais apparemment cela ne fonctionne pas car je ne peux pas mettre la colonne "durée" dans la fonction subMinutes
return $game->whereHas('rounds', function ($query) { $query->where('start_time', '>', Carbon::now()->subMinutes(duration)); })->first();
P粉5935361042023-12-28 11:43:13
Vous recherchez ceci en SQL :
WHERE start_time > CURRENT_TIMESTAMP - INTERVAL duration SECOND
ou équivalent, en Eloquent :
$query->whereRaw(sql: 'WHERE start_time > CURRENT_TIMESTAMP - INTERVAL duration SECOND');