Blade es un poderoso motor de plantillas, usado en Laravel. Ya he escrito dos posts:

Lo que nos reúne hoy aquí es cómo podemos declarar una variable dentro de una vista o template de Blade.

Su uso no se recomienda, pero a veces viene bien declarar variables dentro de nuestras plantillas; eso sí, no hay que abusar.

Establecer variable dentro de Blade

Vamos rápido. Para declarar una variable dentro de Blade hay que definir un bloque de código PHP y dentro de él, poner la definición. Así:

@php
$nombre = "parzibyte";
@endphp

Dentro del bloque podemos hacer más cosas que haríamos con PHP nativo, en este caso solamente estamos declarando una variable pero podríamos definir más de ellas siempre y cuando estén dentro de @php y @endphp.

Nota: si vas a crear más de una expresión, recuerda terminarla con punto y coma.

Hay una forma más corta y es esta:

@php($nombre = "Parzibyte")

En ese caso solamente usamos @php() y dentro del paréntesis la declaramos.

Ejemplo de declaración de variable dentro de Blade

Estoy trabajando en un proyecto en donde se muestran unas imágenes en filas. La variable controla cuántas imágenes se muestran por fila. Declaro mi variable así:

 @php
    $mostrarPorFila = 3
@endphp
{{-- [https://parzibyte.me/blog/posts/blade-laravel-ciclos-condicionales-token-csrf-componentes/](https://parzibyte.me/blog/posts/blade-laravel-ciclos-condicionales-token-csrf-componentes/) --}}
@forelse($articulo->fotos as $foto)
    {{-- Aquí muestro las fotos --}}
@empty
    <div class="columns">
        <div class="column">
            <h1 class="is-size-1">No hay fotos</h1>
        </div>
    </div>
@endforelse

Seguramente se podría mandar desde el controlador pero por el momento la dejaré ahí; espero no arrepentirme más tarde.

Si no entiendes lo de @forelse mira los posts que dejé al inicio.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto