Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 延迟加载属性未在条令2.0中加载_Php_Doctrine_Doctrine Orm - Fatal编程技术网

Php 延迟加载属性未在条令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

我正在使用PHP和Doctrine 2.0。除了下面详述的实体关系(或者其他实体在我没有注意到的地方失败),所有实体都工作正常


考虑以下实体:

/** @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。除此之外,我仍然不知道是什么原因导致我的准则/原则被打破。然而,这种变通方法的性能影响似乎可以忽略不计——即使存在