2017-09-08 108 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); 
} 
相关问题