8

Quisiera que me ayudasen a entender de que forma se aplica el @forelse en .

3 respuestas 3

14

Es lo mismo que un foreach, pero en caso que el parámetro de entrada esté vacío, mostrará lo que esté entre @empty y @endforelse.

El objetivo de @forelse es reducir el código necesario para hacer:

@if ($users->count())
  @foreach ($users as $user)
    <p>Usuario {{ $user->id }}</p>
  @endforeach
@else
  <p>No hay usuarios.</p>
@endif

a esto:

@forelse ($users as $user)
    <p>Usuario {{ $user->id }}</p>
@empty
    <p>No hay usuarios.</p>
@endforelse

En caso que quieras ver como se hace la compilación de Blade: https://github.com/laravel/framework/blob/5.4/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php#L14

1

Con un ejemplo se entiende, simplemente recorre todos los valores del array/collection que le pases y si esta vacio salta el else.

@forelse($array as $objeto_individual)
   <h1> {{ $objeto_individual }}</h1>
@empty
   <h1> Sin valores </h1>
@forelse
1

Para complementar la respuesta de @Shaz :

El forelse no solo verifica si la variable esta vacía, sino también si esta seteada, es decir valida "empty" e "isset".

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.