Conviértete en un profesional de Laravel Blade con estos consejos y trucos esenciales
Aquí hay algunos consejos y trucos esenciales y de los más avanzados para usar Blade en Laravel…
Directivas personalizadas
Blade le permite definir directivas personalizadas que se pueden usar en sus vistas. Esto puede ser útil para encapsular lógica compleja o crear bloques de plantillas reutilizables.
Para definir una directiva personalizada, puede usar el método Blade::directive
en su proveedor de servicios:
Blade::directive('uppercase', function ($expression) { return "<?php echo strtoupper{$expression}; ?>"; });
Esta directiva se puede usar en sus vistas de esta manera:
@uppercase($string)
La directiva ejecutará el código PHP para convertir la variable $string a mayúsculas y generará el resultado.
Pasar datos a vistas
En Laravel, puedes pasar datos a tus vistas desde tus controladores usando el método with en la instancia de la vista. Por ejemplo:
return view('myview')->with('key', $value);
También puede pasar una matriz de datos a su vista:
return view('myview')->with([
'key1' => $value1,
'key2' => $value2,
]);
Los datos pasados a la vista estarán disponibles como variables en la vista.
Visualización de errores
Blade proporciona una manera conveniente de mostrar los errores de validación en sus vistas. Para mostrar los errores de un campo dado, puede usar la variable $errors
y los métodos has
y first
:
@if ($errors->has('field'))
<div class="alert alert-danger">
{{ $errors->first('field') }}
</div>
@endif
Esto mostrará el primer mensaje de error para el field
si hay algún error.
Compilar vistas
Blade compila sus vistas en código PHP cuando se accede a ellas por primera vez y almacena las versiones compiladas en el directorio storage/framework/views
. Esto permite que las vistas compiladas se sirvan más rápidamente en solicitudes posteriores.
Puede compilar manualmente sus vistas usando el comando php artisan view:cache
. Esto puede ser útil si desea compilar previamente sus vistas para la producción, o si ha realizado cambios en sus vistas y desea ver los cambios reflejados de inmediato.
Depuración
Si tiene problemas con sus plantillas Blade, puede usar la directiva @debug para imprimir el contenido de una variable en la pantalla:
@debug($variable)
Esto imprimirá la variable y su tipo en la pantalla, lo que puede ser útil para comprender por qué su código no se comporta como se esperaba.
Declaraciones if personalizadas
Puede definir una directiva personalizada para una declaración if
más legible:
Blade::directive('readableif', function ($expression) { return "<?php if ({$expression}): ?>"; });
Esta directiva se puede utilizar en sus puntos de vista de esta manera:
@readableif($variable == 5) <p>The variable is equal to 5.</p> @endif
Bucles while personalizados
Puede definir una directiva personalizada para un bucle while
más legible:
Blade::directive('readablewhile', function ($expression) { return "<?php while ({$expression}): ?>"; }); Blade::directive('readableendwhile', function () { return "<?php endwhile; ?>"; });
Estas directivas se pueden usar en sus vistas de esta manera:
@readablewhile($variable < 10)
<p>The variable is currently {{ $variable }}</p>
<?php $variable++; ?>
@readableendwhile
Declaraciones de cambio personalizadas
Puede definir una directiva personalizada para una declaración de switch
más legible:
Blade::directive('readableswitch', function ($expression) { return "<?php switch ({$expression}): ?>"; }); Blade::directive('readablecase', function ($expression) { return "<?php case {$expression}: ?>"; }); Blade::directive('readablebreak', function () { return "<?php break; ?>"; }); Blade::directive('readableendswitch', function () { return "<?php endswitch; ?>"; });
Estas directivas se pueden usar en sus vistas de esta manera:
@readableswitch($variable) @readablecase(1) <p>The variable is equal to 1.</p> @readablebreak @readablecase(2) <p>The variable is equal to 2.</p> @readablebreak @readablecase(3) <p>The variable is equal to 3.</p> @readablebreak @readableendswitch
¡Espero que estos ejemplos y consejos sean útiles para trabajar con Blade en Laravel! Hazme saber si tienes alguna pregunta.
Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel: