Méthode Laravel pour utiliser la valeur d'une autre colonne comme paramètre de fonction dans l'instruction Where
P粉974462439
P粉974462439 2023-12-27 17:39:22
0
1
538

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粉974462439
P粉974462439

répondre à tous(1)
P粉593536104

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');
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal