راکت

کار با relation تو در تو

5 پاسخ

سلام
چجوری میشه با orm لاراول به ریلیشنِ ریلیشن دست پیدا کرد ؟

مثلا یه مدل دسته بندی دارم که با مقالات relation یک به چند داره و مقالات هم توی مدل لایک با کاربران relation چند به چند دارن. میخوام با orm لاراول همه ی لایک‌های مربوط به یک دسته‌بندی رو بصورت collection بگیریم. چه کدی باید بنویسم که کوئری کمتری برای دیتابیس نوشته شه؟

 Category => articles => likes
ثبت پرسش جدید

پاسخ‌ها

5
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@sjavadez
سلام.
از Eager Loading استفاده کنید.

Javad Ezaz
Javad Ezaz
@sjavadez

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

@mohsenbostan
با تشکر.
با Eager Loading آشنا هستم ولی اینکه چجوری با eloquent بتونم مثلا از Category به رکوردهای like بدون foreach دسترسی داشته باشم رو نمیدونم چی کار باید بکنم ؟

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@sjavadez
از . استفاده کنید. مثلاً :
category.likes

Javad Ezaz
Javad Ezaz
@sjavadez

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

@mohsenbostan
ممنون بابت وقتی که میذارین
شاید منظورم رو درست نرسوندم.
الان مثلا من میخوام بگم تمام رکوردهای لایک مقالاتی رو به من برگردون که دسته بندی این مقالات علمی باشه. چه کدی بنویسم که لازم نباشه $category->articles رو داخل foreach بذارم و راحت بتونم به json تبدیلش کنم ؟ (برای اینکه هم کدم تمیز باشه و هم بهینه میپرسم)

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@sjavadez

Article::where('category_id',$category_id)->with('likes')->get();

برای تبدیل به json هم از json_encode استفاده کنید.

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

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