Ich habe eine Taxonomietabelle mit verschiedenen Transaktionskategorien. Jede Kategorie enthält eine Reihe von Transaktionen sowie deren Ablaufdaten. Ich möchte nur auf die Transaktionen und deren Kategorien zugreifen, deren Ablaufdatum noch nicht abgelaufen ist, aber ich stoße auf ein Problem, bei dem alle Transaktionen eintreffen, unabhängig davon, ob sie abgelaufen sind, wenn Transaktionen einer bestimmten Kategorie innerhalb des Zeitbereichs vorhanden sind oder nicht. Das ist mein Code:
$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);
当你使用
with
来加载关联关系时,你可以传递额外的条件告诉Eloquent要加载哪些记录:最新版本的Laravel甚至包括了一个专门的
withWhereHas
方法,可以在同时加载关联关系的同时检查关系的存在性,基于相同的条件进行加载:任何一种选项都可以满足你的需求。