Не совсем понятна используемая структура для ведения тегов к материалам.
Реализуйте следующую архитектуру:
![6bea3a74a58e446dbba5b26c00e3a7b9.png](https://habrastorage.org/files/6be/a3a/74a/6bea3a74a58e446dbba5b26c00e3a7b9.png)
class Recipe extends Model
{
public function tag_links()
{
return $this->hasMany('Recipe_Tag', 'recipe_id');
}
}
class Recipe_Tag extends Model
{
public function tag()
{
return $this->hasOne('Tag', 'tag_id');
}
}
class Tag extends Model
{
}
Использование:
$receipes = Recipe::with('tag_links')->get();
foreach ($receipes as $receipe)
{
echo '<h1>'.$receipe->title.'</h1>';
echo 'Категории: ';
foreach ($receipe->tag_links as $tag_link)
{
echo $tag_link->tag->name;
}
}
Преимущество такого подхода объяснять не приходится.
P.S. Пример отображения информации через контроллер - предоставлен для наглядности.
Удачки! ;-)