首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何清除购物车php

如何清除购物车php
EN

Stack Overflow用户
提问于 2016-04-05 17:09:10
回答 1查看 174关注 0票数 0

我对Symfony2和PHP并不熟悉,但我正在学习我的方法。

我创造了一个简单的购物车。在他们单击'Buy‘之后,我希望清除购物车中的项目,并有效地使购物车失效,因为在我的数据库中,字段将从false变为true (这将显示哪些购物车处于活动状态,哪些没有活动)。

为什么我的代码没有做任何我希望它做的事情?在我点击'Buy‘(项目还在那里)之后,购物车仍然保持触觉,而在我的DB中,我的字段不会改变。

我真的很感谢你帮忙,谢谢。

代码语言:javascript
运行
复制
/**
     * Displays the products bought from products 'added to cart'
     *
     * @Route("/bought", name="product_bought")
     * @Method("GET")
     * @Template()
     */
    public function boughtAction(Request $request) {

        $em = $this->getDoctrine()->getManager();

        $user = $this->getUser();

        $cart = $em->getRepository('ShopBundle:UserCart')->findOneBy(['user' => $this->getUser()]);

        $totalCostOfAllProducts = 0;

            $cart->getSubmitted(); //it's false
            var_dump($cart->getSubmitted());
            $cart->setSubmitted(true);
        $sub = $cart->getSubmitted(); //it's true

        if ($sub == true) {
            $cart = null;
        }
        // var_dump($cart);
        var_dump($sub);

        return array(
            'user' => $user,
            'quantity' => $cart->getQuantities(),
            'totalCostOfAllProducts' => $totalCostOfAllProducts,
        );
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-05 17:38:40

看起来,您没有对数据库的更改进行持久化和刷新。目前,第二次调用->getSubmitted()时的值仍然与第一次调用时相同。

对于要更新的实体所做的更改,您需要执行以下操作:

代码语言:javascript
运行
复制
$em->persist($cart);

这将将该实体标记为对其进行更改。

代码语言:javascript
运行
复制
$em->flush();

这将更新数据库中持久化的所有实体,并且在第二次调用->getSubmitted()时应该是正确的。

添加这些行可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36432816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档