/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['likeable_type' => 'required|string', 'likeable_id' => 'required|integer']); $like = Like::firstOrCreate(['likeable_type' => $request->input('likeable_type'), 'likeable_id' => $request->input('likeable_id'), 'user_id' => $request->user()->id]); if ($request->has('dislike')) { $like->delete(); } $like->likeable->updateLikeCount(); }