2014-09-24 91 views
-1

我想在使用Ajax的Syfmony中創建一個基本的'添加到籃子'功能。到目前爲止,我有這樣的:如何將多個值作爲數組添加到Symfony會話中?

/** 
* @Route("/basket/add") 
*/ 
public function addAction(Request $request) 
{ 
    $item = [ 
     'id'  => $request->get('id'), 
     'artist' => $request->get('artist'), 
     'title' => $request->get('title'), 
     'type' => $request->get('type') 
    ]; 

    $this->session->set('basket-'.$item['id'], $item); 

    return new JsonResponse($this->session->all()); 
} 

但最好我不得不在籃下一個會話集。我之前嘗試使用array_push以便逐個追加值,但我並沒有走得太遠。

有什麼建議嗎?

乾杯

+0

什麼是'$ this-> session'?它不應該是'$ request-> getSession()'?並且'$ request-> get()'不是推薦的方式,它可以很慢.. – xurshid29 2014-09-25 05:29:06

回答

1

您是否嘗試過這樣的事情?

public function addSesAction(Request $request) 
{ 
    $basket = $request->getSession()->get('basket', []); 
    array_push($basket, [ 
     'id'  => $request->get('id'), 
     'artist' => $request->get('artist'), 
     'title' => $request->get('title'), 
     'type' => $request->get('type') 
    ]); 
    $request->getSession()->set('basket', $basket); 

    return new JsonResponse($basket); 
} 
+0

這就是我以前的樣子。非常感謝! – 2014-09-25 19:07:10

-1

我認爲使用應先調用會話類,首先初始化會話,然後嘗試使用添加您的值會話陣列。 嘗試下面的代碼,希望這會爲你工作

試試這個:

public function addSesAction(Request $request) 
{ 
$session = new session(); 
$item = [ 
    'id'  => $request->get('id'), 
    'artist' => $request->get('artist'), 
    'title' => $request->get('title'), 
    'type' => $request->get('type') 
]; 

$session->set('basket-'.$item['id'], $item); 

return new JsonResponse($session->all()); 
} 
+2

Symfony2有一個會話服務,所以你不必實例化它...... – DonCallisto 2014-09-25 06:53:17

相關問題