plantillas - Laravel 5: Mostrar HTML con Blade
plantillas para laravel gratis (16)
Tengo una cadena devuelta a una de mis vistas, como esta:
$text = ''<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>''
Estoy tratando de mostrarlo con Blade:
{{$text}}
Sin embargo, el resultado es una cadena sin formato en lugar de HTML procesado. ¿Cómo visualizo HTML con Blade en Laravel 5?
PD.
PHP
echo()
muestra el HTML correctamente.
Esto funciona bien para Laravel 5.6
<td class="nowrap">
@if( $order->status == ''0'' )
<button class="btn btn-danger">Inactive</button>
@else
<button class="btn btn-success">Active</button>
@endif
</td>
De una manera diferente
<td class="nowrap">
{!! $order->status==''0'' ?
''<button class="btn btn-danger">Inactive</button> :
''<button class="btn btn-success">Active</button> !!}
</td>
No representará el código HTML y se imprimirá como una cadena.
Para obtener más detalles, abra el enlace: - Mostrar HTML con Blade
Hay otra manera
Si el objetivo del objeto es renderizar html, puede implementar
/Illuminate/Contracts/Support/Htmlable
contract que tiene el método
toHtml()
.
Luego puede renderizar ese objeto desde la hoja de la siguiente manera:
{{ $someObject }}
(nota, ¡no es necesaria la sintaxis
{!! !!}
).
Además, si desea devolver la propiedad html y sabe que será html, use la clase
/Illuminate/Support/HtmlString
esta manera:
{{ html_entity_decode($text) }}
y luego
{{ $product->getProductDescription() }}
como
{{ $product->getProductDescription() }}
.
Por supuesto, ser responsable al representar directamente html sin procesar en la página.
He estado allí y fue mi culpa. Y muy estúpido.
si olvida la extensión .blade en el nombre del archivo, ese archivo no entiende la hoja pero ejecuta el código php. Deberías usar
/resources/views/filename.blade.php
en lugar de
/resources/views/filename.php
Espero que esto ayude a alguien
Necesitas usar
{!! $text !!}
La cadena se escapará automáticamente cuando se use
{{ $text }}
.
Para laravel 5
{!!html_entity_decode($text)!!}
A través de este link , vea la respuesta de RachidLaasri
Para quienes usan tinymce y marcado en textarea:
{{ htmlspecialchars($text) }}
Por favor use
{!! $test !!}
Solo en el caso de HTML, mientras que si desea representar datos, picadura, etc. use
{{ $test }}
Esto se debe a que cuando se compila su archivo Blade
{{ $test }}
se convierte a
<?php echo e($test) ?>
mientras
{!! $test !!}
{!! $test !!}
se convierte en
<?php echo $test ?>
Prueba esto, ha funcionado:
@php
echo $text;
@endphp
Prueba esto. A mi me funciono.
public function getProductDescription()
{
return new HtmlString($this->description);
}
En la plantilla Laravel Blade, {{}} escapará html. Si desea mostrar html desde el controlador a la vista, descodifique html desde la cadena.
Puede hacerlo utilizando tres formas de primer uso si la condición como a continuación
{{ $html }}
El es la segunda forma
{!! $html !!}
La tercera y adecuada forma de usar el operador ternario en la cuchilla
{{ HTML::link(''/auth/logout'', ''Sign Out'', array(''class'' => ''btn btn-default btn-flat'')) }}
Espero que la tercera forma sea perfecta para el operador ternario usado en la cuchilla.
Puedes probar esto:
{!! $text !!}
Debe echar un vistazo a: http://laravel.com/docs/5.0/upgrade#upgrade-5.0
Puedes usar {!! $ text !!} para renderizar código HTML en Laravel
{!! $text !!}
Si utiliza
{{ $text }}
No representará el código HTML y se imprimirá como una cadena.
Si quieres escapar del uso de datos
{!! HTML::link(''/auth/logout'', ''Sign Out'', array(''class'' => ''btn btn-default btn-flat'')) !!}
Si no quiere escapar del uso de datos
{{ html_entity_decode($data) }}
Pero hasta Laravel-4 puedes usar
<?php echo "$text"; ?>
Cuando se trata de Laravel-5
{!! $text !!}
También puedes hacer esto con la función PHP
{!! $text !!}
revise el documento PHP para ver los parámetros de esta función
Usa
{!! $text !!}
{!! $text !!}
para mostrar datos sin escapar de ellos.
Solo asegúrese de no hacer esto con los datos que provienen del usuario y que no se han limpiado.
es un simple
{!! $text !!}
compilar laravel como elemento dom y
{{$text}}
imprimir como una cadena
puedes hacerlo de muchas maneras en laravel 5 ..
{!! $text !!}
{!! html_entity_decode($text) !!}