Ok, первая позволяет писать отношения в вашей модели:
Хорошая модель (представляющих таблицу товаров)
public function getTags()
{
return $this->belongsToMany('Tag','good_tag','good_id','tag_id');
}
Tag Модель (представляющих таблицы тегов), это обратное отношение для получения товаров для конкретной бирки
public function getGoods()
{
return $this->belongsToMany('Good','good_tag','tag_id','good_id');
}
Теперь, чтобы получить все товары и их теги вот код:
$goods=Good::All();
foreach($goods as $good)
{
echo $good->title;
echo "Tags: ";
foreach($good->getTags as $tag)
{
echo $tag->title." ";
}
}