Laravel 5回显session变量中包含的html


Laravel 5 echo out session variable containing html in blade

我在laravel中做了一个重定向:

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

$returnData是一个字符串,它包含一个bootstrap infodiv,其中包含来自控制器的结果。几乎一切都在工作,除了当页面再次加载时,它在页面上显示html,就好像它是文本,括号和一切。如果我使用这个:

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

则显示为纯文本。如果我把它改成

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

很好。我可以保持这样,但我宁愿利用刀片/Laravel,因为它应该被使用,所以我想知道是否有一种方法让@if语句显示渲染的html,而不是文本版本?

我建议只返回错误信息,然后在你的视图创建div。所以如果你要改变视图的布局,你会在一个地方。

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

希望这有帮助。

要显示渲染的HTML你应该在视图中使用{!! $variable->coontent !!},这会将HTML文本转换为渲染

希望这个例子对你有帮助。试试这个

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

如果你想显示纯文本的错误,没有任何HTML实体,你可以简单地使用:

{{ Session::get('error') }}

{{ session('error') }}

如果变量中有HTML实体,则使用:

{!! Session::get('error') !!}

尝试将刀片代码更改为以下代码:

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