smart
5 سال پیش توسط smart مطرح شد
2 پاسخ

چاپ یک کالکشن لاراول در صفحه با یک حلقه foreach

سلام دوستان. وقت بخیر. من میخوام یه کالکشن لاراول رو توی صفحه چاپ کنم ولی نه به صورت پشت سر هم. یعنی فرض کنید یه کالکشن هست که ۵۰ آبجکت داره و ما هم ۱۰ دسته بندی داریم. هرکدوم از این آبجکت ها مربوط به یه دسته بندی هست که مرتب هم نیستن. ولی دسته بندی ها بصورت مرتب قرار دارن. حالا من میخوام این آبجکت ها رو دونه دونه چاپ کنم ولی هرکدوم رو زیر دسته بندی خودش. یه چیزی مثل شکل زیر

دسته ۱
---آبجکت۱
---آبجکت۷
---آبجکت۱۵
دسته ۲
---آبجکت۴
---آبجکت۵
---آبجکت۲۳
دسته ۳
---آبجکت۱۷
---آبجکت۱۲
---آبجکت۴۵
...

تقریبا یه همچین حالتی. من میتونم یه حلقه بذارم که هربار دسته ها رو بشماره و توی اون حلقه هم یه foreach بذارم واسه آبجکت ها که میاد هربار واسه یه دسته کل ابجکت ها رو بررسی میکنه و هرکدوم که مربوط به اون دسته بندی بود رو چاپ میکنه و میره دسته بندی بعدی و همینطور ادامه میده. ولی این روش خیلی طولانی میشه و باید به تعداد دسته ها اون حلقه foreach اجرا بشه که خوب نیست.

روش دیگه ای واسه انجام این کار هست ؟؟؟؟؟


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

باید کوئری بهینه تری بزنید. از Eager loading استفاده کنید و سعی کنید داده ها رو با کوئری دسته بندی یا sort کنید


mahdi khanzadi
تخصص : backend developer at Snapp mar...
@khanzadimahdi 5 سال پیش مطرح شد
0

در هر صورت باید حلقه foreach اجرا بشه. راه دیگه ای وجود نداره. شما میتونید درون لاراول برای مدل دسته بندی ها یک observer ایجاد کنید و درون متد update , create , destroy کدی که برای ایجاد view هست رو بنویسید و نتیجه ی حاصل رو کش کنید تا این کد به محض ایجاد تغییرات یکبار اجرا بشه. از اون موقع به بعد میتونید از دیتای کش شده استفاده کنید.


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

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