2016-10-05 4 views
1

Ich habe eine Galerietabelle und eine Tag-Tabelle. Eine Pivot-Tabelle 'gallery_tag' existiert mit einer Viele-zu-Viele-Beziehung.Laravel Rückkehr Ergebnisse beim Blick in eine Pivot-Tabelle

Ich kämpfe um eine Möglichkeit, wo ich die Galerie (Galerie: :) ​​Bilder mit nur sagen 'rot' (Tag-ID: 2) auf meiner Seite zeigen kann.

Ich verstehe, wie es geht, wenn tag_id in der Galerietabelle gespeichert wurde, aber wie suche ich meine Tag :: oder Gallery :: für diese bestimmte ID?

weiß ich, dieser Code funktionieren würde nie aber hoffentlich werde es erklären, was ich zu tun versucht:

$red  = Gallery::wherePivot('id', '=', 2)->get(); 

Dank

+0

Warum greifen Sie nicht vom Tag-Modell '$ red = Tag :: wo (['id' => 2]) -> mit ('gallery') -> get()' –

+0

Ich bekomme Call zu undefined Methode Belichten \ Datenbank \ Query \ Builder :: gallery(). Was referenziert diese Galerie? Der Tisch? –

+0

das ist die Beziehung von Tags-Modell. oder sind es Galerien? zeige den Beziehungscode. –

Antwort

0

Gallery Modell:

public function tags() 
{ 
    return $this->belongsToMany('App\Tag','gallery_tag'); 
} 

Tag Modell:

public function galleries() 
{ 
    return $this->belongsToMany('App\Gallery','gallery_tag'); 
} 

dann, diese geben die alle Bilder der Galerien mit dem Tag-ID 2.

$tag=Tag::where(['id'=>2])->with('galleries')->first(); 
foreach($tag->galleries as $gallery) 
{ 
    print_r($gallery->image); //image is the column in galleries table 
} 

Eloquent Many to Many Relationship in docs sehen.

+0

Danke, das macht Sinn! –

+0

@Paolo Ich bin froh, dass das geholfen hat. –

Verwandte Themen