書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

Laravel いいね機能の実装方法

Laravelデータベース

「いいね」機能をつける場合、ログインユーザーのみが「いいね」できるようにする方法が一般的ですが、ログインなしの場合でも可能です。

今回は、前半はログインしているユーザー用の「いいね」機能について解説します。

後半は、ここにログインなしユーザーの「いいね」も反映されるようにしていきます。

ログインなしの場合は、IPアドレスを使って、ユーザーを識別します。

じゅんこ
じゅんこ

Laravelの醍醐味のひとつは、リレーション。

今回はリレーションをフル活用して、機能を搭載していきますね。

Laravel いいね機能追加・ログインユーザー用

まずはログインユーザーのみが「いいね」できる機能を搭載します。

今回は、すでにUserモデルとPostモデルがあるとします。UserモデルとPostモデルに多対多リレーションを設定していきます。

① 中間テーブルを作成

PostとUserの中間テーブルを作成します。

マイグレーションファイルには、次のようにいれます。

マイグレートを実行します。

② リレーションを設定

多対多リレーションを設定します。

【Userモデルファイル】

1人ユーザーが複数の投稿をする可能性があるので、Postモデルに対して、すでにhasManyメソッドを設定がされているとします。

さらに、1人のユーザーが複数の投稿にに対して「いいね」をする可能性があるので、多対多リレーションを設定し、belongsToManyメソッドを設定します。

【Postモデルファイル】

ひとつの投稿は、ひとりのユーザーに紐づくので、Postモデルに対して、すでにbelongsToメソッドを設定されているとします。

さらに、ひとつの投稿は、複数のユーザーの「いいね」を獲得する可能性があるので、多対多リレーションを設定し、belongsToManyメソッドを設定します。

③ ルートファイルの設定

今回は既にある投稿表示用の画面に「いいね」機能を搭載することにします。

新たに 下記のルート設定を加えます。

【routes/web.php】

④ コントローラーの作成

「いいね」を付け足し消したりする処理を記述するため、PostContollerに処理を加えます。もしまだコントローラがなければ、作成します。

PostControllerを開き、上部に、use宣言を追加しておきましょう。

次に「いいね」をつけるためにlikeメソッドを入れます。もし「いいね」があれば、いいねを外す、なければ追加するようにしました。

【PostController likeメソッド】

⑥ビューファイルの作成

最後は、見える部分を作っていきます。

既にある投稿一覧用のビューファイルに、次のように、「いいね」ボタンを設置します。

⑦ テストしてみる

では、テストしてみます。「いいね」前は、こんな表示。

「いいね」をすると、こうなります。「いいね取り消し」を押すと、再度「いいね」となります。

外見なども変えて、すてきな「いいね」機能つけてみてくださいね

Laravelデータベース

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる
 

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
Twitter始めました。
Junkoラボ
タイトルとURLをコピーしました