Kaedah untuk mencari tarikh luput transaksi dalam jadual berkaitan
P粉752812853
P粉752812853 2023-09-13 16:19:38
0
1
683

Saya mempunyai jadual taksonomi dengan kategori transaksi yang berbeza. Setiap kategori mengandungi beberapa urus niaga bersama dengan tarikh luputnya. Saya hanya mahu mengakses urus niaga tersebut dan kategorinya yang tarikh tamat tempohnya masih belum tamat, tetapi saya menghadapi isu di mana jika urus niaga kategori tertentu wujud dalam julat masa, maka semua urus niaga akan tiba tanpa mengira sama ada transaksi tersebut telah tamat tempoh. atau tidak. Ini kod saya:

$deals = DealCategory::where('name', '!=', '今日交易')
        ->whereRelation('deals','start_date', '<=', date('Y-m-d'))
        ->whereRelation('deals', 'expiry_date',">=", date('Y-m-d'))
        ->with('deals', 'deals.deal_images', 'deals.deal_products', 'deals.deal_products.product', 'deals.rating')->latest()->Paginate(12);
        return response()->json(['Deals' => $deals, 'Date' => Carbon::now(), 'status' => 'success'], 200);

P粉752812853
P粉752812853

membalas semua(1)
P粉042455250

Apabila anda menggunakan with untuk memuatkan perhubungan, anda boleh melepasi syarat tambahan untuk memberitahu Eloquent rekod yang hendak dimuatkan:

DealCategory::where('name', '!=', 'Today Deal')
  ->whereRelation('deals','start_date', '<=', date('Y-m-d'))
  ->whereRelation('deals', 'expiry_date',">=", date('Y-m-d'))
  ->with(['deals' => function ($query) {
    $query->where('start_date', '<=', date('Y-m-d'));
    $query->where('expiry_date',">=", date('Y-m-d'));
    $query->with('deal_images', 'deal_products', 'deal_products.product', 'rating');
  }])
->latest()->Paginate(12);

Versi terkini Laravel malah termasuk kaedah withWhereHas khusus yang menyemak kewujudan perhubungan sambil memuatkan perhubungan secara serentak, memuatkan berdasarkan syarat yang sama:

DealCategory::where('name', '!=', 'Today Deal')
  ->withWhereHas('deals', function ($query) {
    $query->where('start_date', '<=', date('Y-m-d'));
    $query->where('expiry_date',">=", date('Y-m-d'));
    $query->with('deal_images', 'deal_products', 'deal_products.product', 'rating');
  })
->latest()->Paginate(12);

Sebarang pilihan boleh memenuhi keperluan anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan