Laravel-Methode zur Verwendung des Werts einer anderen Spalte als Funktionsparameter in der Where-Anweisung
P粉974462439
P粉974462439 2023-12-27 17:39:22
0
1
518

Ich habe ein Round-Modell für ein Laravel-PHP-Spiel. Jede Runde hat eine Startzeit (DATETIME) und eine Dauer in Minuten (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

Ein Spiel hat mehrere Runden, wenn start_time +uration > Carbon::now() dann endet eine Runde

Jetzt kann ich anscheinend nicht herausfinden, wie ich alle Runden eines noch laufenden Spiels abrufen kann

Ich habe mir etwas Ähnliches überlegt, aber anscheinend funktioniert das nicht, weil ich die Spalte „Dauer“ nicht in die SubMinutes-Funktion einfügen kann

return $game->whereHas('rounds', function ($query) {
            $query->where('start_time', '>', Carbon::now()->subMinutes(duration));
        })->first();


P粉974462439
P粉974462439

Antworte allen(1)
P粉593536104

您正在 SQL 中查找此内容:

WHERE start_time > CURRENT_TIMESTAMP - INTERVAL duration SECOND

或相同的,在 Eloquent 中:

$query->whereRaw(sql: 'WHERE start_time > CURRENT_TIMESTAMP - INTERVAL duration SECOND');
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage