我希望能够通过其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);
如何偶尔使用整数键设置外键?
如果我们可以在不使用一些脏代码的情况下做到这一点,那就太棒了
答案 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);