Php 为Symfony控制器中的foreach提供的参数无效

Php 为Symfony控制器中的foreach提供的参数无效,php,symfony,foreach,Php,Symfony,Foreach,我试图在我的CartController中将产品添加到当前登录的用户购物车,但当我单击“添加到购物车”按钮时,它会引发以下异常:警告: 为foreach()提供的参数无效 下面是我的addToCart函数: /** * @Route("/cart/add", name="cart_add") */ public function addToCartAction(Request $request) { $manager = $this->g

我试图在我的CartController中将产品添加到当前登录的用户购物车,但当我单击“添加到购物车”按钮时,它会引发以下异常:警告:

为foreach()提供的参数无效

下面是我的addToCart函数:

/**
     * @Route("/cart/add", name="cart_add")
     */
    public function addToCartAction(Request $request)
    {
        $manager = $this->getDoctrine()->getManager();
        $currentUserId = $this->get('security.token_storage')->getToken()->getUser();
        $session = $this->get('session');
        $id_cart = $session->get('id_cart', false);

        if (!$id_cart) {
            $cart = new Cart();
            $cart->setUserId($currentUserId);
            $cart->setDateCreated(new \DateTime());
            $cart->setDateUpdated(new \DateTime());

            $manager->persist($cart);
            $manager->flush();
            $session->set('id_cart', $cart->getId());
        }

        $cart = $this->getDoctrine()->getRepository('AppBundle:Cart')->find($session->get('id_cart', false));

        $products = $request->get('products');

        foreach ($products as $id_product) {
            $product = $this->getDoctrine()->getRepository('AppBundle:Product')->find($id_product);

            if($product) {
                $cartProduct = new CartProduct();
                $cartProduct->setCart($cart);
                $cartProduct->setProduct($product);
                $cartProduct->setQuantity(1);

                $manager->persist($cartProduct);
            }
        }
        $cart->setDateUpdated(new \DateTime());
        $manager->persist($cart);
        $manager->flush();

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

获取参数时应添加默认值以避免此类错误:

$products = $request->get('products', []);

尝试:
$products=$request->get('products')->all()
调用null上的成员函数all(),
$request->get('products')
提供了一个空数组。。。您确定
get('products')
有效吗?尝试查看
var\u dump($request->get('products'))
dump($request->all())返回的内容,您将看到设置了哪些参数,但正如Anna所说,看起来您没有设置$products