我正在尝试使用Ajax在Syfmony中创建一个基本的“添加到篮子”功能。到目前为止,我有这个:
/**
* @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 :(得分: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);
}
答案 1 :(得分:-1)
我认为use应首先调用会话类,首先初始化会话,然后尝试将会话值作为数组添加到会话中。 请尝试以下代码,希望这对您有用
试试这个:
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());
}