我在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而不是文本版本?
答案 0 :(得分:23)
我建议只返回错误信息,然后在视图中创建div。因此,如果您要更改视图的布局,您可以在一个位置。
@if(Session::has('error'))
<div class="alert alert-danger">
{{ Session::get('error')}}
</div>
@endif
希望这有帮助。
答案 1 :(得分:3)
要显示呈现的HTML,您应该在视图中使用{!! $variable->coontent !!}
,这会将您的HTML文本转换为呈现
答案 2 :(得分:2)
这个例子可以帮到你。 试试这个
@if (session('Error'))
<div class="alert alert-success">
{{ session('Error') }}
</div>
@endif
答案 3 :(得分:1)
如果你想不带任何HTML实体来显示从错误的纯文本,你可以简单地使用:
{{ Session::get('error') }}
或
{{ session('error') }}
如果你在你的变量HTML实体然后使用:
{!! Session::get('error') !!}
答案 4 :(得分:0)
尝试将您的刀片代码更改为以下内容。
@if(!empty(Session::get('error')))
{!! Session::get('error') !!}
@endif