Laravel: mostrar HTML en vistas Blade

Publicado por Keygured
hace 4 años

En Laravel Blade quiero mostrar una variable qu tiene un texto como el siguiente:

$texto = '<p><strong>Lorem</strong> ipsum dolor <img src="imagenes/prueba.jpg"></p>';

Pero cuando lo muestro con Blade usando {{$text}} en vez de procesar el HTML lo muestra literalmente tal y como se ve cuando lo asigno en la variable. Si lo hago usando <php echo $texto; ?> si se ve como quiero. Cómo puedo hacer esto con Blade?

php laravel blade
Respuesta de Gordon Shumway
hace 4 años

Lo que ocurre es que al utilizar las dos llaves, Laravel corrige el texto para que no muestre código HTML directamente. Utilizar las dos llaves es el equivalente a hacerlo de la siguiente forma:

<?php echo e($texto); ?>

Donde "e" es una función que convierte todos los caracteres especiales a entidades HTML. Por ejemplo transforma "<" en "<".

Para que se vea como querés tenés que hacerlo del siguiente modo:

{!!$texto!!}

Saludos

Respuesta de Keygured
hace 4 años

Entendido, muchas gracias!