1
我需要一种方法来动态创建关系,我选择启动学说的事件时加载类的元数据,loadClassMetadata()主义动态关系不起作用
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
{
$metadata = $eventArgs->getClassMetadata();
$this->em = $eventArgs->getEntityManager();
if ($metadata->getName() != 'AppBundle\Entity\NewsNews') {
return;
}
$attachmentsMetadata = $this->getAttachmentsClassMetadata();
$attachmentsMetadata->mapManyToOne(
[
"targetEntity" => $metadata->getName(),
"fieldName" => "newsNews",
'joinColumns' => array(
array(
'name' => 'foreign_key',
'referencedColumnName' => 'id'
)
),
"inversedBy" => "attachments"
]
);
$attachmentsMetadata->initializeReflection();
$metadata->mapOneToMany(
[
"targetEntity" => $attachmentsMetadata->getName(),
"fieldName" => "attachments",
'joinColumns' => array(
array(
'name' => 'id',
'referencedColumnName' => 'foreign_key'
)
),
"mappedBy" => "newsNews"
]
);
}
好,工作,但问题是,当教条将设置数据为这种关系,他抛出这个异常“注意:未定义的指数:newsNews” 我已经检查了类,当学说将附加此数据和newsNews字段丢失反射特性。 如果我忘记了这个过程中的某些部分,我不知道的xD
感谢您的帮助
我不能完全肯定,为什么你会需要这个,此外什么是这种“动态”代码的目的是什么? – tftd
我想自动创建自己的应用程序关系,而无需更改包。谢谢 –