我有两个实体,第三个是两个类之间的链接:我称之为3d类“order_product”:我将@ORM\Id
添加到此类,以便让Symfony处理id键。但我有这个错误:
类型为Sdz \ BlogBundle \ Entity \ Order_Product的实体缺少已分配的ID。此实体的标识符生成策略要求在调用EntityManager#persist()之前填充ID字段。如果您想要自动生成标识符而不是,则需要相应地调整元数据映射。 500内部服务器错误 - ORMException
当数据库为空时,第一次调用url时,一切正常,但第二次出现此错误。
/**
* @ORM\Entity
*/
class Order_Product
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Sdz\BlogBundle\Entity\Order")
*/
private $order;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Sdz\BlogBundle\Entity\Product")
*/
private $product;
和控制器中的方法:
public function addOrderProductAction()
{
$em = $this->getDoctrine()->getEntityManager();
$products = $em->getRepository('SdzBlogBundle:Product')->findAll();
$ord = new Order;
$i = 0;
foreach($products as $product){
$pp[$i] = new Order_Product;
$op[$i]->setOrder = $ord;
$op[$i]->setProduct = $product;
$em->persist($op[$i]);
$i++;
}
$em->persist($ord);
$em->flush();
return new Response('OK');
}
你知道如何解决这个问题吗?
感谢您的帮助