راکت

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

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

ثبت پرسش جدید

پاسخ‌ها

4
حمید
حمید
@hamidtinker

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

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

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

تخصص: برنامه نویس وب

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

شاید پاسخ شما همین‌جا باشد

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

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

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

hosein azimi
hosein azimi
@hossein.azeemi

تخصص: توسعه دهنده وب

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

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

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

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

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

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

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

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