我正在尝试在 Symfony2 中创建一个基于另一个表的主键的实体,但是在尝试运行数据固定装置时出现以下错误。
[学说\ORM\ORM异常]
Ofdan\SearchBundle\Entity\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;
...
}
我正在使用的数据夹具在域中加载,它应该设置 domainId,这应该意味着有一个 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 一起使用?