2015-08-23 69 views
3

我laravel做了重新定位:Laravel 5回聲出包含HTML會話變量刀片

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

$ returnData是包含有從控制結果的引導信息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

不是一個答案,但你應該使用'{{! [PHP code goes here] !!}}'執行代碼。刀片模板爲您提供了使用比使用PHP標籤更清晰的語法的自由。 – theGreenCabbage

回答

8

我會建議然後在視圖中創建的股利只返回錯誤信息。所以如果你要改變視圖的佈局,你可以在一個地方。

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

希望得到這個幫助。

3

要顯示呈現的HTML,你應該在你的視圖中使用{!! $variable->coontent !!},這會轉換你的HTML文本渲染

0

試着改變你的刀片代碼如下。

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

這個例子可以幫助你。 試試這個

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