2012-06-03 6 views
0

Symfony2에서 다른 테이블을 기반으로하는 기본 키를 만들려고하지만 데이터 고정 장치를 실행하려고 할 때 다음 오류가 발생합니다.여러 테이블에 대해 동일한 기본 키

[교리 \ ORM \ ORMException] 할당 된 ID를 누락 엔티티 유형 Ofdan \ SearchBundle \ 엔티티 \ CacheHeader의

. 이 엔티티에 대한 식별자 생성 전략은 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; 

... 

} 

데이터 고정 나는 이드가 의미한다 domainId을 설정해야 도메인의 부하를 사용하고 있습니다.

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이 호출 되었기 때문입니다.

관련 문제