Doctrine:只加载关系ID

时间:2013-06-10 09:01:53

标签: php database doctrine-orm lazy-loading relationship

Doctrine是否可以说我只想加载关系(n:1)的ID? ID本身是一个自然价值,在大多数情况下我不需要相关实体。

1 个答案:

答案 0 :(得分:1)

将该关联标记为懒惰。它不应该加载对象,只是一个代理。在调用任何方法后,对象将立即初始化,除了调用ID 之外。

这是语法 - http://doctrine-orm.readthedocs.org/en/2.1/reference/annotations-reference.html#manytoone

生成的代理类中的“getId”方法示例:

public function getId()
{
    if ($this->__isInitialized__ === false) {
        return (int) $this->_identifier["id"];
    }
    $this->__load();
    return parent::getId();
}

如您所见,如果未初始化代理,则不会加载记录。