我有一个表对象,它有 2 个外键字段(user_id 和 Teacher_id)。为 X 表生成实体后,该实体仅包含 $user 和 $teacher 属性,这迫使我使用关联的对象而不是 id。因此,假设我知道我的对象的 user_id 和 Teacher_id,而不是执行以下操作:
$object->setUserId(1)
我要做:
$user = $this->getDoctrine()->getRepository('MyBundle:Users')->find(2);
$object->setUser($user)
有没有办法直接使用 id 来避免检索与每个 id 关联的整个对象?
该框架建议在设置关联值时使用对象。不过,您确定该记录尚未加载到内存中吗?如果是,则不会导致额外的SQL语句执行。
如果您确实需要在不加载对象的情况下更新关联,您可以
- 运行本机 SQL;
- 尝试手动创建 Doctrine Proxy 对象并进行设置。
您可以使用以下方式获取代理对象EntityManager
method getReference
:
$object->setUser($this->getDoctrine()->getReference('MyBundle:Users', 2));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)