Wie behalte ich die Zeilenumbrüche vor Benutzereingaben, sondern bereinige sie auch in Blade?

8

Ich versuche, eine Daten aus User Textarea-Eingabe rendern in meiner Datenbank gespeichert.

Ich brauche die Zeilenumbrüche mit nl2br,

und möchte außerdem mithilfe des Blade {{{}}} santisieren, um bösartiges Skript zu verhindern.

Aber {{{nl2br ($ output)}}} funktioniert nicht, das br-Tag würde auch bereinigt werden.

Bitte geben Sie mir einen Hinweis, danke.

    
wilson Liu 31.10.2014, 03:28
quelle

3 Antworten

25

Für Benutzer Laravel 4 :

%Vor%

e($x) entspricht {{{ $x }}} .

Laravel 5 Benutzer:

%Vor%

e($x) entspricht {{ $x }} .

    
Sawny 15.03.2015 10:49
quelle
7

Sawnys Antwort ist eine großartige, die die Kraft der Blade-Syntax sehr gut nutzt, außer dass ich einen Schritt weiter gehen würde. Sie können Blade::extend verwenden, um Ihre eigenen Blade @ shortcodes zu erstellen, also verwende ich Folgendes:

%Vor%

Jetzt müssen Sie in Ihrer Blade-Vorlage Folgendes tun:

%Vor%

BEARBEITEN: Ich habe bemerkt, dass jemand, der auf ihn stößt, sich vielleicht fragt: "Wo stelle ich die Funktion Blade::extend ?"

Um ehrlich zu sein, kann es an vielen Stellen gehen (und es hängt davon ab, ob Sie Laravel 4 oder 5 als "besten" Ansatz verwenden).

Ein einfacher Ort, um es zu platzieren, ist in den Dateien routes.php oder global.php , da sie mit der geringsten Anstrengung aufgenommen werden. Dies sind jedoch nicht die besten Dateien, in die Sie sie einfügen könnten, und Sie sollten am besten lernen, Laravel-Provider zu erstellen.

    
ashurexm 10.04.2015 07:36
quelle
-1

verwenden Sie einfach diese entfernen br keine Notwendigkeit zu schreiben Diese Funktion nl2br es funktioniert gut

%Vor%     
manpreet 06.01.2017 07:48
quelle

Tags und Links