2017-10-21 123 views
1

espérons que vous allez tous très bien.Est-il possible d'extraire des données en utilisant la clause where avec la relation de l'enfant laravel

Je viens de déménager à Laravel récemment chez CI.

J'ai deux tables - Réservations - Booked_Rooms

Ce que je veux est de savoir si toutes les chambres sont checked_out que je déciderai en utilisant Booked_Rooms.checkout_at est nul alors enregistrement parent doit exclure ensemble de données.

J'ai essayé Google et fait un peu de recherche mais je n'ai pas pu trouver ce que je suis en train de chercher.

J'ai également essayé mais il est toujours en train d'extraire l'enregistrement parent. Je ne veux pas parcourir chaque enregistrement par boucle, puis exclure les enregistrements, car cela ne semble pas bon pour la mesure de la performance. Je sais aussi que je peux le faire en utilisant join mais je peux le faire en utilisant Eloquent ORM

Résumé: Si toutes les colonnes checkout_at de toutes les reserved_rooms ne sont pas nulles alors l'enregistrement de réservation parent est considéré comme terminé et ne devrait pas être dans les réservations en attente.

HtlBooking Modèle de

public function rooms() 
{ 
    return $this->hasMany('App\BookedRoom','booking_id'); 
} 

Controller Fonction

$bookings = HtlBooking::with ('rooms')->with ('user') 
     ->get(); 

Répondre

2

trouvé ma réponse, juste fait en utilisant

$bookings = HtlBooking::with('rooms')->whereHas('rooms',function($q){$q->where('checkout_at',null);})->with ('user') 
     ->get();