2015-10-12 4 views
7

は私がlaravelを掘りましたし、私は、ブレードビューをどのように解釈するかを経て、私が来たものを越えたこと:laravelビューのe()メソッドは何ですか?

この:

<?php echo e($tenant->name); ?> 

I:

{{ $tenant->name }} 

はこれに変換しますe()の方法は何ですか?私もphp.net上でそれを見つけることができませんでしたので、私はそれがlaravel 5自体の一部であると推測しています。しかし、それは何をしますか?ドキュメントから

答えて

1

は、あなたがからいくつかのデータを印刷しようと言いますウェブページ上のデータベース、または入力としてデータベースに入れようとすると、

{{ $tenant->name }} 

$tenant->nameの値は、あなたがalertを取得するブラウザでこれをレンダリング後

<script> 
    alert("Errors...."); 
</script> 

のようなものだと思います。これはセキュリティ上の問題であり、これらのコンテンツをレンダリングしないようにする必要があり、これらの種類のデータはデータベースに保存する必要はありません。

ので、我々はそのlaravelを行うために、これらのデータに

をサニタイズする必要がHTML::entities

にいくつかのオプション

HTML::entities($tenant->name);

e()で、ヘルパー機能を提供し、あなたが同じ動作を得ることができます使用することによって

e($tenant->name);

$tenant->name<script>alert("Errors....");</script>であるならば、e()に適用した後、あなたが以下の何かを得るだろうが、

"&lt;script&gt; alert(&quot;Errors....&quot;); &lt;/script&gt;"

これはスクリプト

としてもはやプロセスはここで良いrecipe

ありませんまたはこれを行う簡単な方法があります

は、二重ブレースの代わりに{{{ }}}を使用します。{{ }}これにより、コンテンツも消毒されます。

関連する問題