سلام دوستان. وقت بخیر. من میخوام یه کالکشن لاراول رو توی صفحه چاپ کنم ولی نه به صورت پشت سر هم. یعنی فرض کنید یه کالکشن هست که ۵۰ آبجکت داره و ما هم ۱۰ دسته بندی داریم. هرکدوم از این آبجکت ها مربوط به یه دسته بندی هست که مرتب هم نیستن. ولی دسته بندی ها بصورت مرتب قرار دارن. حالا من میخوام این آبجکت ها رو دونه دونه چاپ کنم ولی هرکدوم رو زیر دسته بندی خودش. یه چیزی مثل شکل زیر
دسته ۱
---آبجکت۱
---آبجکت۷
---آبجکت۱۵
دسته ۲
---آبجکت۴
---آبجکت۵
---آبجکت۲۳
دسته ۳
---آبجکت۱۷
---آبجکت۱۲
---آبجکت۴۵
...
تقریبا یه همچین حالتی. من میتونم یه حلقه بذارم که هربار دسته ها رو بشماره و توی اون حلقه هم یه foreach بذارم واسه آبجکت ها که میاد هربار واسه یه دسته کل ابجکت ها رو بررسی میکنه و هرکدوم که مربوط به اون دسته بندی بود رو چاپ میکنه و میره دسته بندی بعدی و همینطور ادامه میده. ولی این روش خیلی طولانی میشه و باید به تعداد دسته ها اون حلقه foreach اجرا بشه که خوب نیست.
روش دیگه ای واسه انجام این کار هست ؟؟؟؟؟
باید کوئری بهینه تری بزنید. از Eager loading استفاده کنید و سعی کنید داده ها رو با کوئری دسته بندی یا sort کنید
در هر صورت باید حلقه foreach اجرا بشه. راه دیگه ای وجود نداره. شما میتونید درون لاراول برای مدل دسته بندی ها یک observer ایجاد کنید و درون متد update , create , destroy کدی که برای ایجاد view هست رو بنویسید و نتیجه ی حاصل رو کش کنید تا این کد به محض ایجاد تغییرات یکبار اجرا بشه. از اون موقع به بعد میتونید از دیتای کش شده استفاده کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟