現在いいね機能を作っており、ボタンがクリックされるといいねがカウントされ、もう一度ボタンがクリックされるといいねが消えるという機能を作っています。
ボタンをクリックするといいねをカウントさせることはできたのですが、もう一度ボタンを押しても何も反応しません。
最初動作がおかしいと思ってコンソールを見た時は「Can't find valiable」というエラーが出ていたのですが今は何故が表示されていません。
ボタン処理周りのコードは以下のようになっています。
html
1<input type="button" class="btn btn-success" value="いいね" onclick="clickedLikeButton()"/>
javascript
1function clickedLikeButton() { 2 @inject('likeService', 'App\Services\LikeService') 3 {{$likeService->count($article->id, Auth::user()->id)}} 4}
php
1class LikeService 2{ 3 public function count($articles_id, $users_id) { 4 $like = DB::table('likes')->where('articles_id', $articles_id)->where('users_id', $users_id)->get(); 5 6 if ($like) { 7 DB::table('likes')->where('articles_id', $articles_id)->where('users_id', $users_id)->delete(); 8 } else { 9 DB::table('likes')->insert([ 10 'articles_id' => $articles_id, 11 'users_id' => $users_id 12 ]); 13 } 14 } 15}
そして試しにclickedLikeButton関数内で
php
1alert('aaa');
としてみると、ボタンを何回押してもアラートは表示され続けます。
なのでデータベースを操作している箇所が怪しいのではないかと思うのですが、どこがおかしいのか分かりません。
一旦以下のようにinsertの処理だけにしてみたのですが、ボタンを何回クリックしても最初の一回分しかデータはinsertできていません。
php
1public function count($articles_id, $users_id) { 2 DB::table('likes')->insert([ 3 'articles_id' => $articles_id, 4 'users_id' => $users_id 5 ]); 6}
どなたか分かる方がいれば教えていただきたいです。よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/21 09:02