2017-09-08 141 views
0

我試圖通過ajax在會話中存儲一些數據。來自Ajax請求的手段我會得到product_id,並通過Session將其放入產品數組中。我想檢索每個會話數組數據。如何在Session中存儲數據數組並檢索它Laravel?

每一個Ajax請求product_id將被存儲到session數組://用於存儲$產品進入會議之後控制器。但它僅存儲最後一個不是先前請求

public function postEnquote(Request $request) 
    { 
     $product = Product::where('id',$request->Input(['product_id']))->first(); 
     Session::put('product', $product); 
    } 

//用於檢索每個會話 數據我用下面的一個,但不能正常工作意味着我不能讓每一個會話數據..

public function enquoteList() 
    { 
     foreach(Session::get('product') as $test) 
     { 
     var_dump($test->id); 
     } 

    } 
+0

爲什麼不直接使用'$ _SESSION'超全局直接? –

+0

'Session :: put('product',$ product);' - 你每次都覆蓋它,而不是追加它。如果您需要多個產品,那麼您必須將其作爲數組存儲在會話中。 – aynber

+0

@RobertRocha最好使用抽象,以便他可以交換實現。如果他要使用'$ _SESSION'這樣的硬編碼,那麼在整個應用程序中改變它都是一種痛苦。 – ishegg

回答

1

你將不得不在這裏使用push

Session::push('product', $product);

因此,所有新$product推到'product'會話變量。

+0

如何打印該數組?意味着會話數組? – User57

+0

'$ products = Session :: get('product');'你可以運行'foreach',因爲'$ products'是一個數組。 –

0

使用push的值添加到一個數組

public function postEnquote(Request $request) 
{ 
    $product = Product::where('id',$request->Input(['product_id']))->first(); 
    Session::push('product', $product); 
} 
相關問題