¿Qué son las estructuras de control de la hoja de Laravel?
Las estructuras de control son bloques de código que analizan el código y deciden qué código ejecutar, según los parámetros dados.
Estructuras de control
Condicionales
@if
y @endif
@if
se usa para renderizar código condicionalmente si se cumple la condición dada. @if
está cerrado por la directiva @endif
.
Ejemplo:
Suponga que tiene una variable $age
que tiene un valor de 5
.
@if($test < 5) Hello World @endif
@else
y @endif
Otras veces, cuando la condición en la declaración @if
se evalúa como false
, querrá generar algún otro código. @else
nos permite renderizar este otro código.
Ejemplo
@if($test < 5) Hello World @else Hello People @endif
A veces, tiene algo más que una afección. @elseif
nos permite agregar más condiciones.
Ejemplo
@if($test < 5) Hello World @elseif($test < 90) Hello 100s @elseif($test < 500) Hello 500s @else Hello People @endif
@unless
y @endunless
@unless
funciona como lo opuesto a @if y solo muestra código cuando no se cumple la condición en él. @unless
está cerrado por @endunless
.
Escribir @unless($age)
funciona exactamente como @if(!$age)
.
Ejemplo
@unless($test = 5) Hello World @endunless
Loops
@for y @endfor
La directiva @for blade se usa como el bucle for en PHP. Está cerrado por la directiva @endfor.
Ejemplo
@for ($i = 0; $i < 5; $i++) {{ $i }} @endfor
@foreach
y endforeach
@foreach
se usa con matrices y termina con endforeach
. Da acceso a cada elemento de la matriz que se utilizará en la vista.
Ejemplo
@foreach($posts as $post) <h2>{{ $post->title }}</h2> @endforeach
$loop
Cuando usa la directiva @foreach
, Laravel le da acceso a una variable $loop
que tiene detalles sobre la iteración actual.
El objeto $loop
tiene las propiedades first
, last
, count
, remaining
, iteration
e index
.
Ejemplo
@forelse($posts as $post) <h2>{{ $post->title }}</h2> <p>Loop iteration: {{ $loop->iteration }}</p> <p>Loop index: {{ $loop->index }}</p> <p>Remaining items: {{ $loop->remaining }}</p> <p>Total items count: {{ $loop->count }}</p> <p>Is the first item? {{ $loop->first }}</p> <p>Is the last item? {{ $loop->last }}</p> @empty No posts yet. @endforelse
Si el bucle está en otro bucle, el objeto $loop
tiene otras propiedades como la depth
y el parent
para indicarle cuántos bucles de profundidad tiene y hacer referencia al bucle padre, respectivamente.
@forelse
, @empty
y @endforelse
Al usar el bucle @foreach
, a veces recorre matrices vacías y se encuentra con errores. Para evitar esto, use el bucle @forelse
. Esto comprueba primero los datos en la matriz y luego recorre la matriz. Si la matriz está vacía, la directiva @empty
contiene código para representar. El bucle @forelse
está cerrado por la directiva @endforelse
.
Ejemplo
@forelse($posts as $post) <h2>{{ $post->title }}</h2> @empty No posts yet. @endforelse
@while
y @endwhile
La directiva @while
funciona exactamente como el bucle while en PHP nativo y finaliza con la directiva @endwhile
.
Ejemplo
@while($item = array_pop($test)) {{ $item }} @endwhile
Resumen
Ahora sabe cómo redirigir a los usuarios en sus aplicaciones de Laravel.
Este artículo fue publicado (en inglés) originalmente en The Educative Team y se puede leer aquí.
Si tiene alguna pregunta o consejo relevante, por favor contácteme para compartirlo.