我正在使用教条,我在实体中添加了一个连接。在连接之后,当数据保存到数据库时,不再保存setter(setcustomerorderID)。每个其他列都会保存。加入是正确的,并设置了$ this-> data-> orderId。
代码在没有连接的情况下工作。
我添加了如下关系:
/**
* @var orders
*
* @ORM\ManyToOne(targetEntity="FYP\CartBundle\Entity\Orders", inversedBy="CustomerDesign")
* @ORM\JoinColumn(name="customerorder_id", referencedColumnName="orderID")
*/
private $orders;
反面:
/**
* @var customerDesign
*
* @ORM\OneToMany(targetEntity="FYP\BaseDesignBundle\Entity\CustomerDesign", mappedBy="orders")
*/
private $customerDesign;
尝试在另一个文件中设置customerorder_id。
$cd = new CustomerDesign();
$cd->setcustomerID($this->data->customerId);
$cd->setcustomerorderID($this->data->orderId);
$cd->setQuantity($cartItem->getQuantity());
$cd->setProductVariant($cartItem->getProductVariant());
$cd->setDesignData($cartItem->getDesignData());
$cd->setRequestProof($cartItem->getRequestProof());
$cd->setComments($cartItem->getComments());
$cd->setSpecialComments($cartItem->getSpecialComments());
$cd->setgiftSetID($cartItem->getgiftSetID());
$cd->setgiftSetParent($cartItem->getgiftSetParent());
$cd->setisBlank($cartItem->getisBlank());
$cd->setbasedOn($cartItem->getbasedOn());
$cd->setApprovalData($cartItem->getApprovalData());
$cd->setdesignName('');
$this->em->persist($cd);
$this->em->flush();
这$ cd-> setcustomerorderID($ this-> data-> orderId);根本不工作。
setcustomerorderID看起来像:
/**
* Set customerorder_id
*
* @param integer $customerorder_id
*/
public function setcustomerorderID($customerorder_id)
{
$this->customerorder_id = $customerorder_id;
}
感谢。
答案 0 :(得分:0)
在此处更改您的代码:
/**
* @var order
*
* @ORM\ManyToOne(targetEntity="FYP\CartBundle\Entity\Orders", inversedBy="CustomerDesign")
* @ORM\JoinColumn(name="customerorder_id", referencedColumnName="orderID")
*/
private $order;
据我了解,根据您的关系,您可能会为许多客户设计订购一份订单。
而不是ID,您需要分配实体。
详细信息可以在Doctrine文档中找到。
<?php
$order = new Order();
$design = new CustomerDesign();
$design->setOrder($order);
...
public function setOrder($order)
{
$this->order = $order;
}
...
$this->em->persist($order);
$this->em->persist($design);
$this->em->flush();
您创建了关系,这意味着customerorder_id受ORM控制。