在Symfony2中添加操作

时间:2015-05-12 16:11:38

标签: symfony

在展会页面中,我要在会话中添加订单数量。 这是我的行动

/**
 * @Route("/add/{id}", name="add_action")
 * @param Request $request
 * @param $id
 * @return \Symfony\Component\HttpFoundation\RedirectResponse
 */
public function addAction(Request $request, $id)
{
    $session = $request->getSession();
    $basket = $session->get('basket');

    $key = array_search($id, $basket);
    if(!$key)
    {
        $basket[$key] = $request->query->get('item');
        $session->set('basket', $basket[$key]);
    }

    return $this->redirectToRoute('basket_action');
}

在此操作中,我有错误Warning: array_search() expects parameter 2 to be array, null given。有什么办法可以让它发挥作用?

P.S。 我的模板的一部分

<form method="get" action="{{ path('add_action', {'id' : product.id}) }}">
        <select class="form-control" name="item">
            {% for i in 1..10 %}
                <option value="{{ i }}">{{ i }}</option>
            {% endfor %}
        </select>
        <button class="btn btn-success" >Add to basket</button>
</form>

2 个答案:

答案 0 :(得分:0)

更改

 $basket = $session->get('basket');

 $basket = $session->get('basket', array());

答案 1 :(得分:0)

看起来你没有正确地将篮子存储在会话中,我需要看到你的代码存储它。您可以在使用array_search之前添加检查是否为数组以防止此错误