Laravel 5: Exibir HTML com Blade

Eu tenho uma string retornada para uma das minhas visualizações, assim:

$text = '

Lorem ipsum dolor

'

Estou tentando exibi-lo com o Blade:

 {{$text}} 

No entanto, a saída é uma cadeia de caracteres bruta em vez de HTML renderizada. Como faço para exibir HTML com o Blade no Laravel 5?

PS. PHP echo() exibe o HTML corretamente.

você precisa fazer assim

 {!! $text !!} 

string irá escaping automaticamente quando você realizar {{}}

Para laravel 5

 {!!html_entity_decode($text)!!} 

Descobri através deste link , veja a resposta de RachidLaasri

Você pode tentar isto:

 {!! $text !!} 

Você deve dar uma olhada em: http://laravel.com/docs/5.0/upgrade#upgrade-5.0

Por favor, use

 {!! $test !!} 

Apenas no caso de HTML, enquanto se você deseja processar dados, picar etc.

 {{ $test }} 

Isto porque quando o seu arquivo blade é compilado

{{ $test }} é convertido em enquanto

{!! $test !!} {!! $test !!} é convertido para

Tente isso. Isso funcionou para mim.

 {{ html_entity_decode($text) }} 

No modelo do Laravel Blade, {{}} irá escaping do html. Se você quiser exibir o html do controlador em vista, decodifique o html da string.

Existe outro caminho. Se a finalidade do object for renderizar o html, você poderá implementar o \Illuminate\Contracts\Support\Htmlable que tem o método toHtml() .

Então você pode renderizar esse object a partir do blade assim: {{ $someObject }} (note, não há necessidade de {!! !!} syntax).

Além disso, se você quiser retornar a propriedade html e você sabe que será html, use a class \Illuminate\Support\HtmlString assim:

 public function getProductDescription() { return new HtmlString($this->description); } 

e então use como {{ $product->getProductDescription() }} .

Claro que ser responsável ao renderizar diretamente o HTML bruto na página.

Você pode usar {!! $ text !!} para renderizar código HTML no Laravel

 {!! $text !!} 

Se você usar

 {{ $text }} 

Não irá renderizar código HTML e imprimir como uma string.

Se você quiser escaping do uso de dados

 {{ $html }} 

Se não quiser fugir do uso de dados

 {!! $html !!} 

Mas até o Laravel-4 você pode usar

 {{ HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) }} 

Quando vem ao Laravel-5

 {!! HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) !!} 

Você também pode fazer isso com a function PHP

 {{ html_entity_decode($data) }} 

percorrer o documento PHP para os parâmetros desta function

html_entity_decode – php.net

No Php Laravel para exibir dados de teste $ na página HTML: –

 {{ $test }} 

De uma maneira diferente

  

Use {!! $text !!} {!! $text !!} para exibir dados sem escaping dela. Apenas certifique-se de não fazer isso com dados que vieram do usuário e não foram limpos.

Isso funciona bem para o Laravel 5.6

  

De uma maneira diferente

 {!! $text !!} 

Não irá renderizar código HTML e imprimir como uma string.

Para mais detalhes abra o link: – Exibir HTML com Blade

é um simples

{!! $ text !!}

compilation laravel como um elemento dom e {{$ text}} imprimir como uma string

Para quem usa tinymce e marcação dentro da textarea:

 {{ htmlspecialchars($text) }} 
    Intereting Posts