J'ai un tableau de taxonomie avec différentes catégories de transactions. Chaque catégorie contient un certain nombre de transactions ainsi que leurs dates d'expiration. Je souhaite accéder uniquement aux transactions et à leurs catégories dont la date d'expiration n'a pas encore expiré, mais je rencontre un problème : si des transactions d'une certaine catégorie existent dans la plage de temps, toutes les transactions arriveront, qu'elles aient ou non expiré. ou non. Voici mon 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);
Lorsque vous utilisez
with
pour charger une relation, vous pouvez passer des conditions supplémentaires pour indiquer à Eloquent quels enregistrements charger :La dernière version de Laravel inclut même une
withWhereHas
méthode dédiée qui vérifie l'existence d'une relation tout en chargeant simultanément la relation, chargement basé sur les mêmes conditions :Toute option peut répondre à vos besoins.