2016-02-29 2 views
0

Je sauvegarde html dans ma base de données et quand je récupère ce code html dans ma vue je le vois comme du texte dans mon navigateur et non des balises html.HTML code source en cours d'impression en tant que données brutes de la base de données

Exemple:

Je sauver "<div><h1>Hello</h1></div>"

Mais quand je l'écho, le navigateur imprime les étiquettes sous forme de données brutes, et non comme des balises HTML.

+1

Pas clair sur la façon de s'y prendre ... Mais un éditeur WYSWYG comme tinyMCE ne va-t-il pas aider dans ce cas? – Rohan210

+0

Cela n'aide pas dans ce cas, je veux voir HTML enregistrer dans ma base de données non pas en tant que texte, mais dans ce qu'il serait créé pour: exemple Si je sauve

bonjour

je ne veux pas voir

bonjour

mais le title "hello" – Nolkyz

+0

Comment ces données sont-elles sauvegardées? – Phiter

Répondre

0

J'ai trouvé ce que je veux! Juste utiliser htmlspecialchars_decode() et ça marche!

0

Je suppose que vous écho comme {{$string}} Cela fonctionne même que e() function (PHP: htmlentities) pour faire écho HTML dans Laravel lame écho comme ça {!! $string !!} pour passer au-dessus HTML propre

+0

Ça ne marche pas pour moi, c'est le même problème – Nolkyz

0

Par défaut, les instructions lame {{}} sont envoyé automatiquement via la fonction htmlentities de PHP pour empêcher les attaques XSS. Si vous ne voulez pas que vos données soient échappés, vous pouvez utiliser la syntaxe suivante:

Bonjour, {!! $name !!}

+0

Cela ne fonctionne pas Je n'ai pas vu le titre Je vois déjà le code HTML dans le texte – Nolkyz

+0

pouvez-vous écrire votre code dans la question, et quelle version de laravel utilisez-vous? –

+0

@if ($ new-> type == 'en-tête') {!! $ new-> contenu !!} @endif J'utilise la dernière version de Laravel – Nolkyz