Symfony 我们能从两个来源储存一对一的关系吗?

Symfony 我们能从两个来源储存一对一的关系吗?,symfony,doctrine-orm,symfony5,Symfony,Doctrine Orm,Symfony5,在我的电子商务项目中,我有以下表格: 客栈 订单产品 并且GuestUser与OrderProduct有一个或多个关系: 我正在尝试持久化数据,但只有最后一项存储在OrderProduct from basket中,它来自会话: 客梯 /** * @ORM\OneToMany(targetEntity=OrderProduct::class, mappedBy="guestUser", cascade={"persist", "remov

在我的电子商务项目中,我有以下表格:

  • 客栈
  • 订单产品
并且GuestUser与OrderProduct有一个或多个关系:

我正在尝试持久化数据,但只有最后一项存储在OrderProduct from basket中,它来自会话:

客梯

 /**
 * @ORM\OneToMany(targetEntity=OrderProduct::class, mappedBy="guestUser", cascade={"persist", "remove"})
 */
private $orderproduct;
订单产品类

 /**
 * @ORM\OneToOne(targetEntity=Item::class, cascade={"persist", "remove"})
 */
private $product;
控制器

        foreach($basket as $item_basket){
          // dd($basket);
            //$guest->addOrderproduct($op->addProduct($item->getId()));
            //$op = new OrderProduct();
            $guest->addOrderproduct($op->setSize('XL'));
            $guest->addOrderproduct($op->setPrice('200'));
            $guest->addOrderProduct($op->setItemIds($item_basket->getId()));
            $em->persist($guest);
        }
        $em = $this->getDoctrine()->getManager();
        $em->persist($guest);
        $em->flush();
我想在这里实现的是,我想将购物篮(来自会话)项目存储到OrderProduct,并在GuestUser中存储来自表单的来宾用户。 上面的代码正在工作,但只存储最后一项 例如:


为什么在循环之后定义
$em=
?我猜在循环中,你必须坚持$op而不是$guest
[array_1]
[array_2] only this one.