Paradox
2 سال پیش توسط Paradox مطرح شد
5 پاسخ

ایجاد افراد مورد علاقه

سلام وقت بخیر
من میخام کاربران مورد علاقه به سایت اضافه کنم باید از روش morph استفاده کرد درسته ؟
من هرچی سرچ زدم لایک و علاقه مندی برای پست و مقالات بود
من میخام برای کاربران باشه یعنی از بین کاربران اونایی که مورد علاقه هستند لایک و دیسلایک اضافه کنم
این لینک هایی که گذاشتم ایا مثل این انجام بدم و جدول post در نظر نگیرم میتونم به جواب برسم یا متفاوت هست ؟
لینک
و این لینک


ثبت پرسش جدید
کوثر
تخصص : برنامه نویس وب
@kowsar 2 سال پیش مطرح شد
1

کارو واسه خودت سخت نکن ، شما میاین یه جدول جدید میسازین ، هر کدوم از کاربر هارو که دوس داشتین میاین ایدیش رو تو اون جدول ذخیره میکنی و هر جاکه دوس داشتی ازشون استفاده کنی


Paradox
تخصص : در حال یادگیری
@paradox 2 سال پیش مطرح شد
0

@kowsar
یه جدول ساختم به این شکل

 Schema::create('favorites', function (Blueprint $table) {
            $table->id();
            $table->foreignId('user_id')->constrained()->cascadeOnDelete();
            $table->timestamps();
        });

مدل یوزر

     public function favorites()
    {
       return $this->hasMany(Favorite::class);
    }

    public function getIsUserFavoritesAttribute()
    {
        return $this->favorites()->where('user_id', auth()->user()->id)->exists();
    }

مدل favorite

 protected $fillable = [
        'user_id',
    ];

    public function user()
    {
       return $this->belongsTo(User::class);
    }

route

 Route::middleware('auth')->post('/profile/favorite/{user}', [IndexController::class, 'store'])->name('favorite');

controller

  public function store(User $user)
    {
        $user->favorites()->toggle(
            auth()->user()->id
        );

        return response(['ok'], 200);
    }

blade

 <span class="single-page__favorite @if($user->is_user_favorite) single-page__favorite--is-active @endif"></span>

script

<script>
    $(".single-page__favorite").on("click", function () {
          fetch('{{ route("favorite", $user->id) }}', {
              method: 'post',
              headers: {
                  'X-CSRF-Token': '{{ csrf_token() }}'
              }
          }).then((response) => {
              if(response.ok) {
                  $(this).toggleClass("single-page__favorite--is-active");
              }
          })

      })
</script>

css

.single-page__favorite::before {
    content: '★';
    font-size: 25px;
    padding-bottom: 25px;
}

.single-page__favorite--is-active::before {
    content: '⭐';
}

به این روش نوشتم ولی تو consol به این خط از جی اس ارور میده

          fetch('http://localhost:8000/profile/favorite/2', {

اشکال کارم کجاست؟


ابوالفضل
تخصص : برنامه نويس
@amata 2 سال پیش مطرح شد
0

شما باید یه جدول بساز ی مثلا Favorite
داخلش یه پراپرتی باشه OwnerUser یه همچین چیزی برای اون کاربری که داری ذخیره میکنی کاربرای مورد علاقشو
بعد یه پراپرتی دیگه باشه که یه لیست از کاربرا میگیره
برای علایقش


Paradox
تخصص : در حال یادگیری
@paradox 2 سال پیش مطرح شد
0

@alekasirabolfazl
به این شکل ؟

 Schema::create('favorites', function (Blueprint $table) {
            $table->id();
            $table->foreignId('user_id')->constrained()->cascadeOnDelete();
            $table->string('OwnerUser');
            $table->timestamps();
        });

ابوالفضل
تخصص : برنامه نويس
@amata 2 سال پیش مطرح شد
0

@paradox متاسفانه لاراول کار نکردم زیاد با الکوئنت که اصلا ولی اگه توضیح بدی این توابع چیکار میکنه میتونم کمکت کنم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام