2017-03-13 3 views
0

私は、ユーザーがテキストテンプレートを設定し、中括弧でプレースホルダを使用することができ、動的に置き換えられるシナリオがあります。例えば、ユーザの入力のような文字列である可能性があり文字列内のプロセスブレードテンプレート

$userinput = '<p> Hello {{$name}} <\p>'; 
$userinput = '<p> Hi {{$name}} <\p>'; 

私はHTMLが正しくレンダリングされるmessage.blade.php

@section('content') 
    {!! $userinput !!} 
@stop 

ビューで展開プレースホルダと、この入力を表示したいのですが、しかし、もちろん{{$ name}}は 'Alice'で置き換えられません。

view('message')->with([ 
      'userinput' => $userinput, 
      'name' => 'Alice',]); 

内部プレースホルダーも簡単に処理できますか?ブレードファイルをもう一度解釈できますか?

PS:エスケープされていないユーザー入力は悪いことを認識しています。

+0

あなたはdd()を試しましたか?名前の値を受け取ったことを確認しましたか?また、代わりに{{$ var}}を使ってみましたか? – RohitS

+0

'$ userinput = '

こんにちは'。$ name。 '

'; 'それはうまくいくでしょうか?あなたが 'Controller'で' $ userinput'を定義しているならば、 'blade'略記を使う必要はありません。 –

+0

<?phpブロックの中にいる場合は、とにかくブレード構文を使うべきではありません。 –

答えて

0

あなたが変更することができます: $userinput = '<p> Hello {{$name}} <\p>'; レンダリングの前に列をスケープます $userinput = '<p> Hello {!! $name !!} <\p>';ため。