1

我希望能够仅通过其 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); 

怎么可能偶尔用它的整数键设置外键?

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

4

1 回答 1

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);
于 2013-08-12T17:00:14.323 回答