web-dev-qa-db-ja.com

Laravel 5ブレード内のhtmlを含むセッション変数をエコーアウト

私はlaravelでリダイレクトを行いました:

return redirect('admin')->with($returnData);

$ returnDataは、コントローラーからの結果を含むbootstrap info divを含む文字列です。ページが再び読み込まれるとき、ページ上にHTMLがテキストであるかのように表示されることを除いて、ブラケットとすべて。これを使用する場合:

@if(!empty(Session::get('error'))) {{ Session::get('error')}} @endif

その後、それは純粋なテキストとして表示されます。に変更した場合

<?php if(!empty(Session::get('error'))) { echo Session::get('error'); } ?>

正常に動作します。私はこのように保ちますが、私はむしろBlade/Laravelを使用することになっているので、@ ifステートメントにレンダリングされたhtmlを表示する方法はないかと思っていましたテキスト版?

8
Webtect

エラーメッセージだけを返すことをお勧めします。次に、ビューでdivを作成します。したがって、ビューのレイアウトを変更する場合は、1か所で行います。

@if(Session::has('error'))
<div class="alert alert-danger">
  {{ Session::get('error')}}
</div>
@endif

この助けを願っています。

26
mdamia

レンダリングされたHTMLを表示するには、ビューで{!! $variable->coontent !!}を使用する必要があります。これにより、HTMLテキストがレンダリングに変換されます

この例を参考にしてください。これを試して

 @if (session('Error'))
     <div class="alert alert-success">
         {{ session('Error') }}
     </div>
@endif
2
Saeed

ブレードコードを次のように変更してみてください。

@if(!empty(Session::get('error'))) 
    {!! Session::get('error') !!} 
@endif
0
Subash