我在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