من جدول posts,videos و ... دارم که حالا میخوام، کاربر روی هر دسته بندی که کلیک کرد مطالب همون دسته نمایش داده بشن (بنا به دلایلی اسم دسته بندی ها روی اصول خود لاراول پیش نبردم)
الان جدول مطالب بخش وبلاگ اسمش posts هست
جدولی که دسته بندیها توش ذخیره میشه category_posts هست
و جدولی که اسم دسته بندی مطالب توش ذخیره میشن category_detail_post هست (که آیدی مطلب و آیدی دسته بندی توش ذخیره میشن)
حالا من لیست دسته بندیها رو نمایش دادم تو سایت، میخوام روی هر دسته بندی که کلیک میشه؛ مطالب همون بیاد بالا، اینکار رو چطوری میتونم انجام بدم؟
برای نمایش مطالب هر دسته بندی در لاراول باید مراحل زیر رو طی کنید:
۱) ابتدا در مدل Category باید نام جدول را به صورت دستی تعریف کنید:
protected $table="category_posts";
۲) باید در فایل Category.php
(همان فایل بالا) رابطه بین هر پست و دسته بندی آن را مشخص کنید (معمولا بهتر است به صورت many to many باشد). بنابراین از تکه کد زیر برای اینکار استفاده می کنید:
public function posts(){
return $this->belongsToMany(Post::class, 'category_detail_post', category_posts_id, post_id);
}
و برای دسترسی به تمام مطالب یک کتگوری کافیست این دستور را بزنید:
$category->posts
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.