symfony - 如何在不加载关联实体的情况下获取关联实体的 ID?

标签 symfony doctrine-orm

考虑具有(单向)manyToOne 关联的实体:

EntityX:
    type: entity
    table: x
    id:
        id:
            type: integer
            generator: { strategy: AUTO }

    fields:
        type:
            type: string

    manyToOne:
        entityY:
            targetEntity: EntityY

EntityY 的任何属性都将通过代理类延迟加载;但是,EntityY 的标识符将(必须)在代理加载之前可用。在不触发 EntityY 的代理加载器的情况下获取此标识符的最佳方法是什么?

编辑:我使用的是 Symfony2 (2.0.11),所以 Doctrine 依赖被限制为 v2.1

最佳答案

简短回答:升级到 Doctrine 2.2。 EntityY->getId() 将不再触发类的加载。

很久以前我确实看过一些代码,其中展示了如何进入 UnitOfWork 对象并将其拉出。找不到它。可以尝试搜索 Doctrine2 用户邮件列表。但考虑到 2.2 解决了这个问题,在我可以升级之前,我会忍受加载。

关于symfony - 如何在不加载关联实体的情况下获取关联实体的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634190/

相关文章:

php - Symfony 2 上的 Endroid/Qrcode 和 __DIR__ const 出现内部服务器错误

php - 无法访问字符串变量的属性

documentation - Symfony2 的简单示例

zend-framework - 使用 Bisna 时,如何在 Zend Framework application.ini 的 Doctrine 2 中定义 utf-8 的使用

php - 在 Doctrine 映射中为表设置 PostgreSQL 模式很热吗?

mysql - NOT IN 用于多字段 DQL Doctrine2

symfony - 如何在 Symfony 2.4 中使用 Doctrine 实体监听器?

php - Symfony 2 不区分大小写的路由

authentication - 为什么我的用户登录在升级到 Symfony3 后不再有效

php - 内存泄漏symfony和独白和控制台