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

Laravel 5 echo out session variable containing html in blade

我在 laravel 中进行了重定向:

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

$returnData 是一个字符串,其中包含 bootstrap 信息 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 而不是文字版?

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

尝试将您的 blade 代码更改为以下代码。

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

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

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

希望对您有所帮助。

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

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

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

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

{{ session('error') }}

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

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