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 < ?php echo e($test) ?> enquanto

    {!! $test !!} {!! $test !!} é convertido para < ?php echo $test ?>

    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

     < ? $test ?> 

    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

     < ?php echo "$text"; ?> 

    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) }}