Laravel
Laravelで一覧に「いいねの数」を表示する方法
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
PR
Laravel で一覧に「いいねの数」を表示する方法についてまとめました
Laravel Framework 8.83.8
Vue 2.6
前提
- posts テーブル
- likes テーブル
がある前提で表示に特化した内容になります。
「いいね」する機能は以下の記事を参照してください。
Laravel でリレーションを書く
Post モデルから見ると Like は、1対多なので hasMany でリレーションを書きます。
Models/Post.php
public function likes()
{
return $this->hasMany('App\Models\Like');
}
コントローラーで、いいね数をセットで一覧を取得する
Laravel でリレーション先の数の合計を数えて一覧に表示する方法【withCount】
(ルーティングの設定や blade ファイルの生成は記事では省略します)
public function index()
{
$posts = Post::withCount('likes')->get();
//dd($posts);
return view('post/index',compact('posts'));
}
この記述により、カラムに「likes_count」が加わった状態でデータが取得されます。
blade×Laravel で一覧を表示する方法
カラムが追加されているので、他のカラムと同様に取得することが可能です。
@foreach($posts as $post)
<div>{{ $post->likes_count }}</div>
@endforeach
Vue ×Laravel で一覧を表示する方法
リレーションやコントローラーは同様で、カラムが追加されているだけですので、シンプルに以下のように取得が可能です。
<template>
<div v-for="post in posts">{{post.likes_count}}</div>
</template>
まとめ
以上です。
誰かの参考になればと思います。
感想・苦情は TwitterDM にご連絡ください。
それでは!
人気記事
フィードバックのお願い
この記事のフィードバックがありましたらYoutubeの適当な動画にコメントしていただいたり、お問い合わせからご連絡ください。