在展会页面中,我要在会话中添加订单数量。 这是我的行动
/**
* @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>
答案 0 :(得分:0)
更改
$basket = $session->get('basket');
到
$basket = $session->get('basket', array());
答案 1 :(得分:0)
看起来你没有正确地将篮子存储在会话中,我需要看到你的代码存储它。您可以在使用array_search之前添加检查是否为数组以防止此错误