I’m working with Laravel 8 to develop my forum and I wanted to add some Like and Unlike functionality to question that have been asked by users.
So Like function works fine but for Unlike, I got some problem.
Here is the method for Unliking:
public function destroy(Question $id, Request $request) { $request->user()->likes()->where('question_id', $id)->delete(); return back(); }
And here is the form behind this:
<form action="{{ route('destroy.likes', $show->id) }}" method="POST"> @csrf @method('DELETE') <button class="btn"> <i class="fas fa-thumbs-down"></i> </button> </form>
So the problem is it does not delete the data from table likes
at the DB.
I tried dd($request->user());
and dd($id);
, they both exists with correct data, but I don’t know why delete()
does not work properly.
So if you know how to solve this, please let me know, I would really appreciate any idea or suggestion from you guys…
Thanks in advance.
Advertisement
Answer
It looks like you are passing a Question object in your destroy
method, and then passing the whole object in your where
call.
Try changing your where
call to where('question_id', $id->id)
, keeping in mind that your variable name is also called id
. It may pay to clarify your variable name to $question
.