2017-04-16 123 views
1

我是laravel的新手,所以我在會話中遇到了這個問題。我實際上獲取一個XML響應並將其轉換爲數組並將其存儲到會話:Laravel 5.4會話不會保留

這是我的控制器接受請求,將響應轉換爲數組並將其存儲在會話中。

public function HotelSearch(Request $request){ 
     $rezlive = new RezLiveSearch(); 
     $rezliveSearch = $rezlive->hotelSearchByCountry($request); 
     $request->session()->put('hotelSearchResult', $rezliveSearch); 
     $theResult = $request->session()->get('hotelSearchResult'); 
     return view('search-result',compact('theResult')); 
    } 

所以這是存儲,我可以查看我的查看頁面上的搜索結果。但是,當我導航到其他頁面,我剛剛存儲的會話不會繼續。我試圖存儲一個正常的字符串,它的工作正常,我可以在應用程序中訪問它。任何人都可以幫助我呢?

BTW我使用laravel 5.4

+0

您是否試圖序列化和反序列化您的數據? –

+0

你可以轉儲結果嗎?它是一個資源還是純數組? – Gntem

+0

@MateuszSip我會盡力做到這一點。 – pinoyCoder

回答

0

$rezlive = new RezLiveSearch(); $rezliveSearch = $rezlive->hotelSearchByCountry($request); $request->session()->put('hotelSearchResult', $rezliveSearch);

的資源不能存儲在會話。

從PHP手冊

http://php.net/manual/en/language.types.resource.php

資源是一個特殊的變量,保持到外部資源的參考。

您需要從資源中提取XML數據並將其存儲到會話中,或者您可以將XML存儲到緩存中,將其與隨機生成的ID相關聯,並避免在會話中放置太多信息。

+0

是的,謝謝你的建議 – pinoyCoder