Je veux écrire une classe de tri pour Spatie Query Builder mais mon problème est que j'ai 3 modèles hotel code> salle code> et rabais code> alors maintenant hotel A de nombreuses chambres et chambres a de nombreux rabais que je veux trier les hôtels par la réduction la plus basse disponible sur les chambres, donc maintenant voici la requête que j'ai essayée note que $ requis code> est en train de charger tous les hôtels: $data = $query->with('accommodationRoom')
->join('discounts','accommodation_rooms.id','=','discounts.accommodation_room_id')
->get();
3 Réponses :
Vous devez vous adhérer à Vous pouvez même participer à plusieurs tables dans une seule requête: p> voir rejoint . p> p> hébergement code> aussi.
@Farshad Vérifiez-le.
Je ne sais pas pourquoi je reçois un tableau vide, même si j'ai la relation entre eux existant, j'en suis sûr.
Avez-vous vérifié le supplément rejoindre code> et leur par code> que j'ai mis? Je ne suis pas sûr que les attributs soient corrects.
Utilisez plusieurs instructions de jointure.
Ajouter une relation dans les fichiers de modèle.
modèle hôtel strong> p> $data = Hotel::with('room', 'room.discount')->orderBy('room.discount.value', 'ASC')->get();
avec code> est une sous-requête, pas une jointure. Vous devrez rejoindre les 3 tables ensemble, soit passer la jointure comme une fermeture sur votreavec code>.@AYNBER Comment cela est possible de rejoindre 3 tables?
Il suffit d'utiliser plusieurs instructions de jointure.