2016-03-26 35 views
1

während mit Form in Laravel Klinge arbeitet diese Syntax funktioniert, was die richtige Laravel ist Syntax

{!!Form::token()!!} //with double exclamation mark 

für ein fernbedienbares js diese

<script src="{{ asset('js/register.js')}}" ></script> 

ohne Ausrufungs mark.In Tatsache Ausrufezeichen funktioniert Datei erstelltes Problem .js Datei wurde nicht gefunden Fehler.

Ich möchte den Unterschied der beiden Syntax kennen .und wann wann welchen verwenden?

Antwort

5

Von Laravel Dokumentation:

standardmäßig Klinge {{}} Anweisungen werden automatisch durch PHP htmlentities Funktion gesendet XSS-Angriffe zu verhindern. Wenn Sie nicht wollen, dass Ihre Daten maskiert werden, können Sie die folgende Syntax verwenden:

Hallo, {!! $ name !!}.

Note: Be very careful when echoing content that is supplied by users of your application. Always use the double curly brace syntax to escape any HTML entities in the content. 

{{ $var }} Verwendung wird

Mit {!! $var !!}} zu <?php echo htmlentities($var);?> gleichwertig entspricht <?php echo $var;?>

Generell würden Sie {{ }} die meiste Zeit verwenden, es sei denn, Sonderzeichen sind, die sind nicht angezeigt, da htmlentities ihnen entgeht. Nur in diesen Fällen würden Sie {!! !!}} verwenden.

Hoffe, das hilft.

+0

dann warum {!! Asset ('js/register.js') !!} konnte die Datei nicht enthalten? –

+0

Schauen Sie in die Browser-Entwickler-Tools (oder sehen Sie sich die Quelle des Dokuments an) und sehen Sie, welcher Pfad tatsächlich verwendet wird. – Yani

+0

Woher kommt diese 'Notiz' in Ihrer Antwort, sieht aus, als käme sie aus der Laravel-Dokumentation. – lagbox

Verwandte Themen