我有点困惑为什么我的removeAction
仅在随机尝试次数后才起作用。有时它可以在4或5次点击后工作,而其他工作则可以立即使用。
该按钮用于从用户购物车中删除项目。我从购物车中获取产品ID,然后使用remove()
和flush()
来更新数据库。就像我说的那样,只有在随机尝试之后才有效。这是为什么?我的逻辑似乎很合理,但显然有些不对劲,但我无法弄明白。
如果我转储$quantity
或$cart
,我每次使用remove()
之前都会看到正确的产品ID
removeAction function
:
/**
* Removes a 'product' from the cart
*
* @Route("/{id}/remove", name="product_remove")
* @METHOD("GET")
* @Template()
*/
public function removeAction(Request $request, $id) {
$em = $this->getDoctrine()->getManager();
$product = $em->getRepository('ShopBundle:Product')->find($id);
$cart = $em->getRepository('ShopBundle:UserCart')->findOneBy(['user' => $this->getUser(), 'submitted' => false]);
$quantity = $em->getRepository('ShopBundle:Quantity')->findOneBy(['product' => $product->getId()]);
//get product id from the cart and then remove it
// product gets removed but only after a random # of click on the remove button...
// dump($quantity);
// dump($cart);
$em->remove($quantity);
$em->flush();
$this->addFlash('notice', 'The product: '.$product->getName().' was removed!');
return $this->redirectToRoute('product_showCart');
}
感谢任何帮助,谢谢!