Laravel × Ajax で独自いいねを作成する

 

 

やりたい事

Laravel × Ajax でログインなしの匿名でイイねが出来る機能を作成する

 

参考にしたサイト

Ajax を使ってリアルタイムに反映する簡易投票システムを設置する

やりたい事はまんまこれなのですが、Laravelを使用の場合少し引っかかったことがあったのでメモします。

 

デモ

デモページ

♡をクリックすると投票数が1プラスされ、もう一度♡をクリックすると、投票数が元に戻ります。
プラスされた数字は再度ページを開いても反映されたままです。

 

PHP(Vote.php)

初心者の私はこのvote.phpをどこに作ればいいの?というところから躓きました。

Model(App\Providers)のVote.phpではなく、resources\viewsでphpファイル新規作成

変更前
$filename= 'data/'.$file.'.dat';

//local.DEBUG: data/vote_01.dat

 

変更後

$filename = public_path().'/data/'.$file.'.dat';

//Users/〇〇(ユーザー名)/〇〇(フォルダ)/〇〇(プロジェクト名)/public/data/vote_01.dat

 

-public
   -assets
   -css
   -js
   -data
//データディレクトリを作成で自動的にdataディレクトリの中にvote_01.datファイルが作成される

 

PHP(index.blade.php)

index.blade.phpの方のパスも同じように下記のpublic_pathに変更

$filename = public_path().'/data/'.$file.'.dat';

 

 

 

今回は掲示板での独自いいねだったのでこのようにしました

<h3>{{ $thread->title }}</h3>
   <div class="btn_area">
      <p class="ico_heart vote_{{ $thread->id }}">{{ get_count('vote_'.$thread->id) }}</p>
      <p class="btn_vote" id="vote_{{ $thread->id }}"></p

 

 

改善点

次回同じページに行った際に、カウントがプラスされているが♡マークが赤くなっていないのでまた♡を押し、♡を押しカウントアップすることが出来る

参考サイトの質問欄にもありますが、♡1にしてもう一度押しても♡0にならない(♡2から♡1とかは出来る)

 

 

 

以上Laravelでajaxを使用して独自いいね♡を作成する方のご参考になれば幸いです

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です