2012-06-03 61 views
0

我想在Symfony2中創建一個基於另一個表的主鍵,但在嘗試運行數據夾具時出現以下錯誤。多個表相同的主鍵

[學說\ ORM \ ORMException]

類型Ofdan \ SearchBundle \實體\ CacheHeader的實體缺少一個分配的ID。此實體的標識符生成策略要求在調用EntityManager#persist()之前填充ID字段。如果您想要自動生成標識符,則需要相應地調整元數據映射。

/** 
* @ORM\Entity 
* @ORM\Table(name="cacheHeader") 
* @ORM\HasLifecycleCallbacks 
*/ 
class CacheHeader 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="Domain", inversedBy="domains") 
    * @ORM\JoinColumn(name="domainId", referencedColumnName="id") 
    * @ORM\Id 
    */ 
    private $domain; 

... 

} 

數據夾具我使用域中負荷,應設置域ID,這應該意味着有一個ID。

class CacheHeaderFixtures extends AbstractFixture implements OrderedFixtureInterface 
{ 
    public function load(ObjectManager $manager) 
    { 
     $cacheHeader1 = new CacheHeader(); 
     $cacheHeader1->setDomain($manager->merge($this->getReference('bbc-domain'))); 
     $cacheHeader1->setDate(new \DateTime()); 
     $cacheHeader1->setPage(10); // CacheHeader::Page_Index 
     $cacheHeader1->setHeader(''); 
     $manager->persist($cacheHeader1); 
    } 
} 

如何讓我的CacheHeader實體與domainId一起工作?

回答

0

答案就是上面的作品。

我有問題的原因是我有第二個燈具,但在錯誤的對象上調用setDomain。