Kaedah Laravel untuk menggunakan nilai lajur lain sebagai parameter fungsi dalam pernyataan Where
P粉974462439
P粉974462439 2023-12-27 17:39:22
0
1
520

Saya mempunyai model Bulat untuk permainan PHP Laravel. Setiap pusingan mempunyai masa mula (DATETIME) dan tempoh dalam minit (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

Sesuatu permainan akan mempunyai beberapa pusingan, jika start_time +uration > Carbon::now() maka satu pusingan tamat

Sekarang saya nampaknya tidak dapat memikirkan cara untuk mendapatkan semula semua pusingan daripada permainan yang masih berlangsung

Saya memikirkan sesuatu yang serupa, tetapi nampaknya itu tidak berfungsi kerana saya tidak boleh meletakkan lajur "tempoh" ke dalam fungsi subMinutes

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


P粉974462439
P粉974462439

membalas semua(1)
P粉593536104

Anda sedang mencari ini dalam SQL:

WHERE start_time > CURRENT_TIMESTAMP - INTERVAL duration SECOND

atau setara, dalam Eloquent:

$query->whereRaw(sql: 'WHERE start_time > CURRENT_TIMESTAMP - INTERVAL duration SECOND');
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan