Php 延迟加载属性未在条令2.0中加载
我正在使用PHP和Doctrine 2.0。除了下面详述的实体关系(或者其他实体在我没有注意到的地方失败),所有实体都工作正常Php 延迟加载属性未在条令2.0中加载,php,doctrine,doctrine-orm,Php,Doctrine,Doctrine Orm,我正在使用PHP和Doctrine 2.0。除了下面详述的实体关系(或者其他实体在我没有注意到的地方失败),所有实体都工作正常 考虑以下实体: /** @Entity */ class Target { /** * @ManyToOne(targetEntity="k\entity\Source", cascade={"persist"}) * @JoinColumn(name="basic_vacancy_id", nullable=false) * @var \k\e
考虑以下实体:
/** @Entity */
class Target {
/**
* @ManyToOne(targetEntity="k\entity\Source", cascade={"persist"})
* @JoinColumn(name="basic_vacancy_id", nullable=false)
* @var \k\entity\Source
*/
$source;
...
}
/** @Entity */
class Source {
...
}
现在,当我调用$target->getSource()
时,我得到了k\entity\proxy\kentitySourceProxy
的一个实例(这是正确的代理类)。但是,源属性的所有getter返回NULL
我可能做错了什么
我已经在关系注释中添加了
fetch=“EAGER”
属性,现在一切似乎都很顺利(除了加载不再是惰性的事实)。什么会导致Doctrine 2.0的延迟加载中断?看起来像是内部d2错误。或者使用反射来检索对象的属性。代理类使用persister在任何方法调用时初始化它们。当您在这个代理上使用getter时,它会发出查询吗?如上所述,我已经在关系注释中添加了fetch=“EAGER”属性,现在一切似乎都很顺利(除了加载不再是惰性的这一事实)
这当然是一个解决方法,并没有修复实际的bug。除此之外,我仍然不知道是什么原因导致我的准则/原则被打破。然而,这种变通方法的性能影响似乎可以忽略不计——即使存在