Symfony4在会话中存储数据,未保存

时间:2018-11-03 15:28:03

标签: php symfony4

我正在建立一家网上商店(大学项目),现在我在购物车方面遇到了问题, 所以我做了两个实体 ShopCart:

/**
 * @ORM\Entity(repositoryClass="App\Repository\ShopCartRepository")
 */
class ShopCart
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\ShopCartItem", mappedBy="shopCart")
     */
    private $items;

    /**
     * @ORM\Column(type="decimal", precision=6, scale=3)
     */
    private $totalPrice = 0;

    /**
     * @ORM\Column(type="integer")
     */
    private $itemsTotal = 0;

和ShopCartItem

/**
 * @ORM\Entity(repositoryClass="App\Repository\ShopCartItemRepository")
 */
class ShopCartItem
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="integer")
     */
    private $quantity;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\ShopProduct", inversedBy="shopCartItems")
     * @ORM\JoinColumn(nullable=false)
     */
    private $product;

    /**
     * @ORM\Column(type="decimal", precision=7, scale=2)
     */
    private $totalPrice;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\ShopCart", inversedBy="items")
     */
    private $shopCart;

现在我将其存储在会话shopId中(这是ShopCart ID) 当我添加项目时,实体和整体认为正常工作,但之后 将ID设置为会话,如下所示: $ request-> getSession()-> set(“ shopId”,$ data-> getId()); 当我增加流程(添加新的ItemToShop)时 在会话shopId中,设置它后不存在,我应该怎么做? 将商品添加到购物车的方法

        /** @var ShopCart $data */
        $data = $this->getCartById($request);
//        dump($request->getSession()->has("shopId"));

        /** @var ShopProduct $product */
        $product = $this->getDoctrine()->getRepository(ShopProduct::class)->find(1);
        $em = $this->getDoctrine()->getEntityManager();
        $data->addItem($product, $em);

        $em->persist($data);
        $em->flush();
//        dump($data->getId());
        $request->getSession()->set("shopId", $data->getId());
        $request->getSession()->save();
        dump($request->getSession()->get("shopId"));

0 个答案:

没有答案