Laravel 5: Afficher du code HTML avec une lame



Answers

Pour laravel 5

{!!html_entity_decode($text)!!}

Figuré à travers ce link , voir RachidLaasri réponse

Question

J'ai une chaîne retournée à l'un de mes points de vue, comme ceci:

$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'

J'essaye de l'afficher avec Blade:

{{$text}}

Cependant, la sortie est une chaîne brute au lieu de HTML rendu. Comment afficher du HTML avec Blade dans Laravel 5?

PS. PHP echo() affiche le code HTML correctement.




Utilisez {!! $text !!} {!! $text !!} pour afficher les données sans l'échapper. Assurez-vous simplement que vous ne le faites pas avec des données provenant de l'utilisateur et qui n'ont pas été nettoyées.




Vous pouvez utiliser {!! $ text !!} pour le code HTML de rendu à Laravel

{!! $text !!}

Si tu utilises

{{ $text }}

Il ne rendra pas le code HTML et imprime sous forme de chaîne.




Il y a un autre moyen. Si le but de l'objet est de rendre html, vous pouvez implémenter le \Illuminate\Contracts\Support\Htmlable méthode toHtml() .

Ensuite, vous pouvez rendre cet objet à partir de la lame comme ceci: {{ $someObject }} (notez, pas besoin de syntaxe {!! !!} ).

Aussi, si vous voulez retourner la propriété html et que vous savez que ce sera html, utilisez la classe \Illuminate\Support\HtmlString comme ceci:

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

puis utilisez-le comme {{ $product->getProductDescription() }} .

Bien sûr, soyez responsable en rendant directement le HTML brut sur la page.




Veuillez utiliser

{!! $test !!} 

Seulement dans le cas de HTML alors que si vous voulez afficher des données, piquer etc.

{{ $test }}

C'est parce que lorsque votre fichier lame est compilé

{{ $test }} est converti en <?php echo e($test) ?>

{!! $test !!} {!! $test !!} est converti en <?php echo $test ?>




Cela fonctionne très bien pour Laravel 5.6

<?php echo "$text"; ?>

D'une autre façon

{!! $text !!}

Il ne rendra pas le code HTML et imprime sous forme de chaîne.

Pour plus de détails lien ouvert: - Afficher le code HTML avec Blade