2016-11-27 5 views
1

bekommen habe ich einen Abschnitt und ein Bild Modelle, mit einer Eins-zu-viele-Beziehung (Abschnitt kann viele Bilder haben; Bild hat nur einen Abschnitt)Laravel: Kinder von Eltern Slug

Ich bin in der Lage abrufen

$section = '1'; 
$records = Picture::where('section_id', $section)->orderBy('position')->get(); 

Was passiert, wenn Ich mag würde abrufen Bild von Section Wegschnecke (oder Name): alle Bilder einen Abschnitt id gegeben? Alle diese Beispiele nicht funktionieren:

$section = 'wedding'; 
$records = Picture::where('sections.slug', $section)->orderBy('position')->get(); // nope 
$records = Picture::where($this->section()->slug, $section)->orderBy('position')->get(); // nope 

Ich habe versucht, in Laravel docs zu suchen, aber ich habe den Fall nicht bekommen ... Danke

Antwort

2

Für Beziehungen Abfrage Sie whereHas Funktion verwenden sollten .

$section = 'wedding'; 

$records = Picture::whereHas('section', function($q) use($section) { 
          $q->where('slug', $section); 
         }) 
         ->orderBy('position') 
         ->get(); 

Docs

+0

Oh, ich dachte, es war ein bisschen mehr "immediate" ... Dank aber:

Wenn sich Ihre Beziehung section() in Picture Modell dann Ihre Abfrage sollte wie sein benannt das funktioniert! – Ivan