راکت
آرمین
آرمین
توسط آرمین مطرح شد
حل
6 پاسخ

نمايش پربازديد ترين پست ها در لاراول

سلام
ميخوام پربازديد ترين پست ها در لاراول رو بر اساس view_count از جدول ديتابيس دريافت كنم و نمايش بدم. در گوگل سرچ كردم نتيجه درستي نگرفتم.
ممنون ميشم اگر راهنمايي كنيد كه بهتره كدش رو خودمون بزنيم يا از پكيج استفاده كنيم؟
تشكر


ثبت پرسش جدید
رضا جهانگیر
رضا جهانگیر
تخصص :Full-Stack Developer
@rezajahangir5 سال پیشمطرح شد
1

سلام.
شما ابتدا داخل جدول مربوطه که فکر میکنم مربوط به مقاله ها هست باید یه فیلد به صورت زیر تعریف کنید:

$table->integer('viewCount')->default(0);

حالا داخل اون فانکشنی که میخواین وقتی روی اون مقاله کلیک شد به صفحه مقاله بره، کد زیر رو اضافه کنید:

$article->increment('viewCount');

در واقع فانکشن شما تقریبا به صورت زیر میشه: (به این خاطر گفتم تقریبا چون شما اگه بخواین کامنت های مربوط به اون مقاله هم نشون بدین باید کد مربوطه هم داخل این فانکشن بنویسید.

public function single(Article $article ) {
     $article->increment('viewCount');
     return view('Home.article', compact('article'));
}

موفق باشید.


رضا پارسیان
رضا پارسیان
تخصص :توسعه دهنده Php , Laravel
@Rp765 سال پیشمطرح شد
1

سلام وقتتون بخیر!

$posts=Post::orderby("view_count","DESC")->get();

آرمین
آرمین
@arminbeik5 سال پیشمطرح شد
0

@Rp76
سمت فرانت كار چطور بايد بازديد اون پست يكي يكي اضافه شه؟
با جاوا اسكريپت يا لايوواير


رضا پارسیان
رضا پارسیان
تخصص :توسعه دهنده Php , Laravel
@Rp765 سال پیشمطرح شد
1

من livewire بلد نیستم!

ولی کلیت کار باید به این صورت باشه
شما وقتی کاربر روی یک پست کلیک میکنه و شما داری اطلاعات پست رو لود می‌کنی همونجا یه اپدیت هم بزنی

به جاوا اسکریپ و لایوایر هم نیاز نداری


moha li
moha li
تخصص :توسعه دهنده لاراول و Vue
@mohaligateway5 سال پیشمطرح شد
1

سلام دوست عزیز
یکی از روش های انجام این کار به صورت session base رو داخل این پست از استک جواب دادن. با این روش ی تونید براساس کاربر و ip و useragent تمامی کار ها رو داخل database در جدول جداگانه handle کنید.
استک

@arminbeik


Muhammad
Muhammad
تخصص :Back-End Developer
@muhammad5 سال پیشمطرح شد
1

سلام. ما یه پروژه داریم که داخل اون جدولی برای ذخیره‌ی اطلاعات بازدیدها داریم. آیدی کاربر (در صورت وجود)، آدرس IP و آیدی پست رو ذخیره می‌کنیم و بعداً کوئری می‌زنیم.


رضا جهانگیر
رضا جهانگیر
تخصص :Full-Stack Developer
@rezajahangir5 سال پیشمطرح شد
1

سلام.
شما ابتدا داخل جدول مربوطه که فکر میکنم مربوط به مقاله ها هست باید یه فیلد به صورت زیر تعریف کنید:

$table->integer('viewCount')->default(0);

حالا داخل اون فانکشنی که میخواین وقتی روی اون مقاله کلیک شد به صفحه مقاله بره، کد زیر رو اضافه کنید:

$article->increment('viewCount');

در واقع فانکشن شما تقریبا به صورت زیر میشه: (به این خاطر گفتم تقریبا چون شما اگه بخواین کامنت های مربوط به اون مقاله هم نشون بدین باید کد مربوطه هم داخل این فانکشن بنویسید.

public function single(Article $article ) {
     $article->increment('viewCount');
     return view('Home.article', compact('article'));
}

موفق باشید.


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

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