🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ Mahdi
تمرین استاد برای پیاده سازی حذف like و dislike
جامعه لاراول ایجاد شده در ۲۹ آذر ۱۴۰۱

سلام من

remove like و remove dislike رو به شکل زیر پیاده کردم

    public function likedBy(User $user)
    {
        if ($this->isLikedBy($user)) {
            return $this->removeLike($user);
        }
        return $this->likes()->create([
            'user_id' => auth()->id(),
            'vote' => 1
        ]);
    }
    public function dislikedBy(User $user)
    {
        if ($this->isDislikedBy($user)) {
            return $this->removeDislike($user);
        }
        return $this->likes()->create([
            'user_id' => auth()->id(),
            'vote' => -1,
        ]);
    }
    public function isLikedBy(User $user)
    {
        return $this->likes()
            ->where('vote', 1)
            ->where('user_id', $user->id)
            ->exists();
    }
    public function isDislikedBy(User $user)
    {
        return $this->likes()
            ->where('vote', -1)
            ->where('user_id', $user->id)
            ->exists();
    }
    public function removeLike(User $user)
    {
        return $this->likes()->where('vote', 1)
            ->where('user_id', $user->id)->delete();
    }
    public function removeDislike(User $user)
    {
        return $this->likes()
            ->where('vote', -1)
            ->where('user_id', $user->id)->delete();
    }