posts(記事)
id | title | body |
---|---|---|
post_tag
id | post_id | tag_id |
---|---|---|
tags(タグ)
id | tag_name |
---|---|
漫画(3) アニメ(2) 映画(2) ....
というように投稿数上位のタグをviewに表示させたいのですが
tag_idからtag_nameを取り出すところで苦戦しています。
php
1//PostsController.php 2 $tag_counts = \DB::table('post_tag') 3 ->select(\DB::raw('tag_id, count(*) as count')) 4 ->groupBy('tag_id') 5 ->orderBy('count','desc') 6 ->limit(5) 7 ->get(); 8 9 return view('posts.index', ['tag_counts' => $tag_counts]);
上記のコードでこちらの値は取り出せましたが
[{"tag_id":1,"count":3},{"tag_id":2,"count":2},{"tag_id":3,"count":2},...]
tag_idからtag_nameを取得して
最終的には
[{"tag_name":漫画,"count":3},...,]
というように置き換えをしたいです
(もっと直接的に値がとれそうですが...)
また、viewはこんな感じで表現できそうですか?
php
1//index.php 2@foreach($tag_counts as $value) 3 <a href="{{ route('top', ['tag_name' => $value->tag_name]) }}"> 4 ({{$value->tag_name}}){{$value->count}} 5 @endforeach
ご教示よろしくお願いいたします。
あなたの回答
tips
プレビュー