Davood
3 سال پیش توسط Davood مطرح شد
4 پاسخ

گرفتن مقالات در لاراول با روابط

سلام
ببخشید من دو تا رابطه ایجاد ردم در مدل های کتگوری و پست ها

مدل post

public function category(){
        return $this->belongsTo(Category::class);
    }

مدل category

public function posts(){
        return $this->hasMany(Post::class);
    }

میخوام با استفاده از این روابط مثلا مقالاتی که دسته بندیشون بین الملل هست رو برگردونم
با این روابط میشه نمایش داد یا باید از join های کوئری بیلدر استفاده کنم

@ali.bayat
@Alimotreb
@eniack
@mhyeganeh


ثبت پرسش جدید
حمید
@hamidtinker 3 سال پیش آپدیت شد
1

سلام
ببرای نمایش پستهای مربوط به یک دسته بندی خاص داخل کنترلر به این صورت عمل کنید:

$posts = Post::where('parent_id','آیدی مورد نظر در جدول دسته بندی ها')->get();

        return view('post.index', compact('posts'));

Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
1

سلام
همین relation که نوشتید اوکیه و می تونید داخل کنترلر با with ریلیشن مورد نظر یعنی category رو بگیرید.


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
1

روش های مختلفی برای انجام این کار وجود داره. ولی اگر خواسته باشید خیلی لاراولی انجامش بدید اینجوری میشه:

$category =  Category::where('title', 'بین الملل')->first();
$posts = $category->posts;

//یا به طور خلاصه:
$posts = Category::where('title', 'بین الملل')->first()->posts;

اینجوری از همون متدهای relationship که ایجاد کردید دارید استفاده می‌کنید و می‌تونید پست هایی که مربوط به دسته بندی «بین‌الملل» هستند رو در قالب یک Collection دریافت کنید.


hosein azimi
تخصص : توسعه دهنده وب
@hossein.azeemi 3 سال پیش آپدیت شد
1

سلام ، با دستور with و whereHas هر دیتایی رو که بخواید میتونید به دست بیارید برای مثال :

دریافت پست هایی که نوع دسته بندیشون بین الملل هست

$posts = Post::whereHas('category' , function($query){
   $query->where('type' , 'beynolmelal');
})->with('category')->get();

این حالت رو برای تمامی بخش هاتون میتونید استفاده کنید ، البته فراموش نکنید حتما از select استفاده کنید .

دریافت تمامی پست ها به همراه دسته بندیشون :

$posts = Post::where('اگر شرطی برای پست ها داری')->with('category')->get();

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

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