web-dev-qa-db-fra.com

Laravel: lame pour chaque boucle bootstrap colonnes

J'ai une boucle foreach et à l'intérieur qui contient du html avec des colonnes bootstrap.

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

Cependant, bootstrap nécessite le div de ligne avant de créer des colonnes, le placer directement dans la boucle foreach créerait un div de ligne pour chaque col-md-6. Je veux savoir comment je peux ajouter la ligne div, sautez la boucle suivante en lançant uniquement la balise div de fermeture, puis répétez ce processus.

Exemple de sortie où les boucles 4 fois:

<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>
14
Thomas Charlesworth

Comme alternative à la réponse d'Alexey Mezenin, vous pouvez utiliser array_chunk À la place. 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

Personnellement, je trouve ce qui précède un peu plus lisible.

Alternativement, si $address Est une collection, vous pouvez faire $address->chunk(2) au lieu de array_chunk($address, 2).

Si vous souhaitez modifier le nombre de colonnes dont vous disposez, il vous suffira de modifier le 2 Pour avoir le nombre de colonnes souhaité.

J'espère que cela t'aides!

32
Rwd

Utilisez le $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>
5
Alexey Mezenin

Vous pouvez utiliser Laravel chunk dans le modèle de lame.

@foreach($products->chunk(3) as $items)
<div class="row">
   @foreach($items as $item)
   <div class="col-md-4 portfolio-item">
      <a href="#">
      <img class="img-responsive" src="{{ 'uploads/'.$item->product_image_url }}" alt="">
      </a>
      <h3>
         <a href="/view-product-details/{{ $item->id }}">{{ $item->product_name }}</a>
      </h3>
      <p>{{ str_limit($item->product_description, 121) }}</p>
   </div>
   @endforeach
</div>
@endforeach

Copié à partir du blogpost .

5
Isuru