2016-10-05 2 views
1

У меня есть таблица для галереи и таблица тегов. Существует сводная таблица «gallery_tag» с отношением «многие ко многим».laravel возвращает результаты при просмотре сводной таблицы

Я изо всех сил пытаюсь подумать о том, как я могу показать галерею (Галерея: :) изображений с просто скажем «красный» (тег id: 2) на моей странице.

Я понимаю, как это сделать, если tag_id был сохранен в таблице галереи, но как я могу найти свой тег :: или Gallery :: для этого конкретного идентификатора?

Я знаю, что этот код никогда не будет работать, но, надеюсь, это будет объяснить, что я пытаюсь сделать:

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

Благодаря

+0

Почему бы вам не получить доступ из модели тегов '$ red = Tag :: where (['id' => 2]) -> with ('gallery') -> get()' –

+0

Я получаю Call to undefined метод Illuminate \ Database \ Query \ Builder :: gallery(). Что говорит эта галерея? Стол? –

+0

это отношение модели тегов. или это галереи? показать код отношений. –

ответ

0

Галерея модель:

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

Tag Модель:

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

тогда, это даст все изображения галереи с тегом ид 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 в документации.

+0

Спасибо, это имеет смысл! –

+0

@Paolo Я рад, что это помогло. –

Смежные вопросы