web-dev-qa-db-fra.com

Laravel 4 ajouter des nombres à partir de la boucle foreach quand la variable count est fournie?

Je passe le tableau $ cats à la vue de mon modèle Laravel. Il s'agit d'un tableau multidimensionnel issu d'une transaction de base de données, contenant des données de catégorie. Donc, il contiendrait des données comme:

$cat[0]['id'] = 1;
$cat[0]['name'] = 'First Category';

Etc. Dans mon modèle de lame, j'ai le code suivant:

            {{ $i=0 }}
            @foreach($cats as $cat)

                    {{ $cat['name'] }}<br />

                {{ $i++ }}

            @endforeach

Quelles sorties:

0 First Category
1 Second Category
2 Third Category

Notez les numéros précédant le nom de la catégorie. D'où viennent-ils? Est-ce une astuce Laravel intelligente? Il semble que lorsque vous incluez une variable de compteur, elles sont automatiquement ajoutées. Je ne trouve aucune mention de cela nulle part, et je n'en veux pas! Comment puis-je me débarrasser d'eux?

Merci.

13
Inigo

Vous avez juste besoin d'utiliser la traduction php simple:

@foreach ($collection as $index => $element)
   {{$index}} - {{$element['name']}}
@endforeach

MODIFIER:

Notez que le $index commencera à partir du 0, il devrait donc s'agir de {{ $index+1 }}

63
Fernando Petrelli

La syntaxe {{ }} dans la lame signifie essentiellement écho. Vous faites écho à $i++ à chaque itération de votre boucle. si vous ne voulez pas que cette valeur se répète, vous devriez plutôt envelopper dans les balises php. par exemple.:

<?php $i=0 ?>

@foreach($cats as $cat)
    {{ $cat['name'] }}<br />
<?php $i++ ?>
@endforeach

En outre, si vous choisissez de travailler dans des tableaux, c’est votre appel, mais à moins que vous n’ayez une raison spécifique de le faire, je vous encourage à utiliser la syntaxe des objets. beaucoup de sucre supplémentaire une fois que vous vous y êtes habitué.

11
SwiftD
@foreach($cats as $cat)
    {{ (isset($i))?$i++:($i = 0) }} - {{$cat['name']}}
@endforeach
0
Mohammad Teimoori
<? php $i = 0 ?>
@foreach ( $variable_name as $value )
    {{ $ value }}<br />
< ? php $i++ ?>
@endforeach
0
JADAV AKASH