Вы можете получить все теги с помощью Eager loading
, как и в своем коде.
Взгляните на https://laravel.com/docs/7.x/eloquent-relationships#eager -loading
$posts = App\Post::with('tags:name')->get();
foreach ($posts as $post) {
foreach ($post->tags as $tag) {
echo " $tag->name
";}}
Это правильное решение.
Вы даже можете сделать это с помощью DB
запросов, чтобы получить его быстрее, но, вероятно, вашего пути будет достаточно.
$posts = App\Post::all()->pluck('id');
return DB::select('SELECT name FROM tags WHERE id in (' . implode(',', $posts) . ')');
Заключительный совет: Не объединяйте HTML просмотр с логи c.