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

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

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


ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
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
@Rp76 3 سال پیش مطرح شد
1

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

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

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

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


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

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

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

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


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

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

@arminbeik


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

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


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

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

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

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

$article->increment('viewCount');

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

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

موفق باشید.


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

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