Symfony 2:缺少已分配的ID,具有ManyToMany关系

时间:2012-02-28 15:38:45

标签: symfony many-to-many

我有两个实体,第三个是两个类之间的链接:我称之为3d类“order_product”:我将@ORM\Id添加到此类,以便让Symfony处理id键。但我有这个错误:

  

类型为Sdz \ BlogBu​​ndle \ 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');
}
你知道如何解决这个问题吗?

感谢您的帮助

0 个答案:

没有答案