سلام
ببخشید من دو تا رابطه ایجاد ردم در مدل های کتگوری و پست ها
مدل post
public function category(){
return $this->belongsTo(Category::class);
}
مدل category
public function posts(){
return $this->hasMany(Post::class);
}
میخوام با استفاده از این روابط مثلا مقالاتی که دسته بندیشون بین الملل هست رو برگردونم
با این روابط میشه نمایش داد یا باید از join های کوئری بیلدر استفاده کنم
سلام
ببرای نمایش پستهای مربوط به یک دسته بندی خاص داخل کنترلر به این صورت عمل کنید:
$posts = Post::where('parent_id','آیدی مورد نظر در جدول دسته بندی ها')->get();
return view('post.index', compact('posts'));
سلام
همین relation که نوشتید اوکیه و می تونید داخل کنترلر با with ریلیشن مورد نظر یعنی category رو بگیرید.
روش های مختلفی برای انجام این کار وجود داره. ولی اگر خواسته باشید خیلی لاراولی انجامش بدید اینجوری میشه:
$category = Category::where('title', 'بین الملل')->first();
$posts = $category->posts;
//یا به طور خلاصه:
$posts = Category::where('title', 'بین الملل')->first()->posts;
اینجوری از همون متدهای relationship که ایجاد کردید دارید استفاده میکنید و میتونید پست هایی که مربوط به دسته بندی «بینالملل» هستند رو در قالب یک Collection دریافت کنید.
سلام ، با دستور with و whereHas هر دیتایی رو که بخواید میتونید به دست بیارید برای مثال :
دریافت پست هایی که نوع دسته بندیشون بین الملل هست
$posts = Post::whereHas('category' , function($query){
$query->where('type' , 'beynolmelal');
})->with('category')->get();
این حالت رو برای تمامی بخش هاتون میتونید استفاده کنید ، البته فراموش نکنید حتما از select استفاده کنید .
دریافت تمامی پست ها به همراه دسته بندیشون :
$posts = Post::where('اگر شرطی برای پست ها داری')->with('category')->get();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟