插入具有关联的实体时,有没有办法只使用FK而不是检索实体?

bla*_*e24 38 php orm doctrine doctrine-orm

我需要插入一个具有关联的实体.

如果我已经拥有关联实体的FK,是否有办法将主要实体插入数据库中,只填充FK?

或者我总是必须这样做

  • 通过FK检索关联的实体,
  • 填充主要实体的属性,引用关联,
  • 然后调用persist方法.

tim*_*dev 64

你想要一个参考代理

假设我有帖子和标签.帖子有很多标签.我从用户那里得到了一堆标签,他们检查了一堆复选框.

以下内容将向现有帖子添加标签,而不首先获取每个标签实体.它通过使用引用代理执行此操作,生成者EntityManager::getReference():

$tag_ids = $_POST['tag_id']; // an array of integers representing tag IDs.
$post = $em->getRepository('Post')->find($post_id); // returns a Post entity.

foreach($tags_ids as $tid){
   $post->addTag($em->getReference('Tag',$tid));
}
$em->persist($post);
$em->flush();
Run Code Online (Sandbox Code Playgroud)