تقسیم نتایج در blade با استفاده از chunks

شرایطی رو تصور کنید که می‌‌خواهید نتایج به دست آمده در یک blade را به دو قسمت تقسیم کنید، یک result ده تایی در دو قسمت ۵ تایی نمایش داده شود. برای این کار یک روش ساده در حلقه @foreach وجود دارد.

شرح مجدد، شما یک آرایه با ۱۰ رکورد دارید که می‌خواهید آنها را به شکل زیر نمایش دهید: 

بخش اول

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

بخش دوم

  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10

راه مستقیم - استفاده از یک متغیر $loop است:



@foreach($items as $item)
    @if($loop->first or $loop->iteration % 5 == 0)
       <‌ul‌‌>
    @endif
    <‌li‌>
        Item {{ $loop->iteration }}
    <‌/li‌>
    @if($loop->last == true or $loop->iteration % 5 == 0)
       <‌/ul‌>
    @endif
@endforeach

اما یک راه بهتر وجود دارد - استفاده از تابع chunk() در کلکشن ها:


@foreach($items->chunk(5) as $chunk)
    < ul >
        @foreach($chunk as $item)
            Item {{ $loop->iteration }}
        @endforeach
   < /ul >
@endforeach

شما می‌توانید در اینجا درباره تابع chunk() بیشتر بخوانید.

کامنت ها (0)

ارسال نظر