En mi código de blade, necesito un contador, para dar divs que sean renderizados por una id. Única de bucle foreach. Para ese fin, creé una variable en mi plantilla de blade como esta:
{{ $counter = 0 }}
Lo uso en el HTML simplemente imprimiéndolo con {{ $counter = 0 }}
y luego, lo incremento así: {{ $counter++ }}
Todo funciona como un encanto, excepto que en {{ $counter++ }}
no solo incrementa la variable, sino que también la envía a la vista.
¿hay alguna forma de prevenir esto?
Respuestas
1 para la respuesta № 1Yo uso esta extensión para establecer variables en blade: https://github.com/RobinRadic/blade-extensions
Puede usar simple como @set ($ count, 1) o cualquier valor que desee.
1 para la respuesta № 2
Al principio, agregar lógica en la plantilla de Blade es una mala práctica, pero a veces nos vemos obligados a hacerlo, en ese caso, puedes usar etiquetas PHP para esto de la siguiente manera:
<?php $counter++; ?>
Otra forma de hacerlo en Laravel 5.4 como documentos indicar:
En algunas situaciones, es útil incrustar código PHP en sus vistas. puede usar la directiva Blade @php para ejecutar un bloque de PHP plano dentro de su plantilla:
@php
$counter++;
@endphp
Si tiene sus posiciones en las claves de matriz, puede utilizarla en la @foreach
Me gusta esto:
@foreach ($variable as $key => $value)
//current position = $key
# code...
@endforeach