當Laravel 4.2嘗試在使用Laravel會話刷新某些數據的刀片中設置JS變量時,我遇到了Laravel 4.2的一些奇怪現象。這很簡單,我不知道我已經錯過了什麼......Laravel會話變量在刀片@if
目標:在用戶註冊後觸發一個Javascript網站瀏覽。 方法:將一個welcome_tour變量寫入會話,然後在頁面刷新時設置一個JS布爾值,然後在JS中開始瀏覽。
我的寄存器功能總結與會話設置:
Session::flash('welcome_tour', TRUE);
而且我測試,它的回升,並在我的刀片以下正確設置JS變量:
<script>
@if(Session::has('welcome_tour'))
var welcome_tour = true;
@else
var welcome_tour = false;
@endif
</script>
{{ var_dump(Session::all()) }}
的結果HTML中的JS代碼段表示welcome_tour未找到:-(
<script>
var welcome_tour = false;
</script>
但是打印到由所述的var_dump屏幕會話細節表明它是正確設置:
array (size=4)
'_token' => string 'HHBowu6wdYlIKy4kFiWYwCe4lQRkFbG7jdNDlYXQ' (length=40)
'flash' =>
array (size=2)
'old' =>
array (size=1)
0 => string 'welcome_tour' (length=12)
'new' =>
array (size=0)
empty
'login_82e5d2c56bdd0811318f0cf078b78bfc' => string '1137' (length=4)
'welcome_tour' => boolean true
會話變量如何既可以是有和沒有存在?
如果您打開瀏覽器控制檯並輸入'welcome_tour',會發生什麼情況?另外,當您在瀏覽器中查看頁面源代碼時,HTML中是否有'welcome_tour'? – Frank
謝謝弗蘭克。奇怪的是,控制檯告訴我,welcome_tour被正確設置爲true。我想這足以讓我觸發我的旅程,但這只是一個奇怪的事情,HTML源代碼將它設置爲false,但它在別的地方被神祕地設置爲真。 – Fixspec
你是否可以在多個地方設置'welcome_tour'的值?所以你正在看HTML源代碼的錯誤部分? – lukasgeiter