没有对象的一对多的二传手

时间:2013-08-12 16:18:03

标签: symfony doctrine-orm symfony-2.3

我希望能够通过其id设置外键。

有时,对于一些长脚本,我需要将完整的外部对象提供给我的setter方法这一事实迫使我做一些数据库查询,浪费资源。

$entity = new SomeEntity();
$entity->setIdAnswer(42);

$em->persist($entity); 

而不是

$world = $em->getRepositorye('My/Bundle:Answer')->findOneById(42); 

$entity = new SomeEntity();
$entity->setIdAnswer( $world );

$em->persist( $entity); 

如何偶尔使用整数键设置外键?

如果我们可以在不使用一些脏代码的情况下做到这一点,那就太棒了

1 个答案:

答案 0 :(得分:3)

通常您可以使用参考代理完全实现: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/advanced-configuration.html#reference-proxies

// $em instanceof EntityManager, $cart instanceof MyProject\Model\Cart
// $itemId comes from somewhere, probably a request parameter
$item = $em->getReference('MyProject\Model\Item', $itemId);
$cart->addItem($item);