如何将多个值作为数组添加到Symfony会话中?

时间:2014-09-24 22:14:48

标签: php arrays symfony

我正在尝试使用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来逐个追加值,但我没有走得太远。

有什么建议吗?

干杯

2 个答案:

答案 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());
}