2017-01-14 34 views
6

Tôi có một vòng lặp foreach và bên trong có chứa html với các cột bootstrap.Laravel: lưỡi foreach looping cột bootstrap

@foreach($address as $add) 
    <div class="col-md-6"> 
     Some data 
    </div> 
@endforeach 

Tuy nhiên, bootstrap yêu cầu hàng div trước khi tạo cột, đặt thẳng vào vòng lặp foreach sẽ tạo div hàng cho mỗi col-md-6. Tôi muốn biết làm thế nào tôi có thể ném vào div hàng, bỏ qua vòng lặp tiếp theo ném vào chỉ thẻ div đóng. Và sau đó lặp lại quá trình đó.

Ví dụ đầu ra nơi các vòng 4 lần:

<div class="row"> 
    <div class="col-md-6"> 
     Some data 
    </div> 
    <div class="col-md-6"> 
     Some data 
    </div> 
</div> 
<div class="row"> 
    <div class="col-md-6"> 
     Some data 
    </div> 
    <div class="col-md-6"> 
     Some data 
    </div> 
</div> 

Trả lời

13

Để thay thế cho câu trả lời Alexey Mezenin của bạn có thể sử dụng array_chunk để thay thế. http://php.net/manual/en/function.array-chunk.php

@foreach(array_chunk($address, 2) as $chunk) 
    <div class="row"> 
     @foreach($chunk as $add) 
      <div class="col-md-6"> 
       Some data 
      </div> 
     @endforeach 
    </div> 
@endforeach 

Cá nhân tôi tìm thấy ở trên một chút dễ đọc hơn.

Hoặc, nếu $address là bộ sưu tập bạn có thể làm $address->chunk(2) thay vì array_chunk($address, 2).

Hy vọng điều này sẽ hữu ích!

+0

Điều này thật tuyệt vời! Cảm ơn –

+0

Đây là một cách thanh lịch để làm điều đó. Cảm ơn. – ramijames

3

Sử dụng the $loop variable:

<div class="row"> 
    @foreach($address as $add) 
     <div class="col-md-6"> 
      Some data 
     </div> 
     @if ($loop->iteration % 2 == 0) 
      </div> 
      <div class="row"> 
     @endif 
    @endforeach 
</div> 
+0

Toàn bộ trang web của tôi bị hỏng và tôi nhận được [cảnh báo Vue]: Mẫu chỉ nên chịu trách nhiệm ánh xạ trạng thái đến giao diện người dùng. Tránh đặt các thẻ có tác dụng phụ trong các mẫu của bạn, chẳng hạn như