2017-04-08 1 views
1

Ich versuche ein ausführlicheres Registrierungsformular für meine Laravel Web App zu erstellen.
Ich habe ein Category, Question und Survey Modell.
Eine Kategorie hasManyQuestion 's und eine QuestionbelongsTo eine Survey.Laravel erhalten eine Sammlung von Modellen, bei denen die Beziehung Wert hat

Kategorie Klasse:

public function questions() 
{ 
    return $this->hasMany('App\Question'); 
} 

public function getUsingAttribute() 
{ 
    return $this->questions->contains('survey_id', Survey::current()->id); 
} 

ich momentan tun haben using Attribut in meiner Kategorie Klasse, aber ich würde dies ein Rahmen machen möchten.
Um klar zu sein, die erwartete Rendite von Category::using->get() alle Category zurückkehren würde, wo mindestens eine der Fragen eine survey_id von Survey::current()

Antwort

1

habe ich es mit einer der Methoden tun würde zur Verfügung query a relationship existence, insbesondere die whereHas() Methode:

return $this->whereHas('questions', function ($query){ 
    $query->where('survey_id', Survey::current()); 
}); 
+1

ich habe dies in einem Umfang und änderte den '$ this' in' $ qu ery', das hat perfekt funktioniert – milo526

0

Was

return $this->questions->where('survey_id', Survey::current()->id); 
Verwandte Themen