راکت

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

5 پاسخ

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

Paradox
Paradox
@paradox
ثبت پرسش جدید

پاسخ‌ها

5
کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

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

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@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

تخصص: برنامه نويس

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

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@alekasirabolfazl
به این شکل ؟

 Schema::create('favorites', function (Blueprint $table) {
            $table->id();
            $table->foreignId('user_id')->constrained()->cascadeOnDelete();
            $table->string('OwnerUser');
            $table->timestamps();
        });
ابوالفضل
ابوالفضل
@amata

تخصص: برنامه نويس

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

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

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