Javad Ezaz
5 سال پیش توسط Javad Ezaz مطرح شد
5 پاسخ

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

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

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

 Category => articles => likes

ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

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


Javad Ezaz
تخصص : برنامه نویس php و لاراول
@sjavadez 5 سال پیش مطرح شد
0

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


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

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


Javad Ezaz
تخصص : برنامه نویس php و لاراول
@sjavadez 5 سال پیش مطرح شد
0

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


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@sjavadez

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

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


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

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