Doctrine没有在dev env上看到映射,但它在测试环境中看到了映射

时间:2016-02-02 09:02:43

标签: php symfony doctrine-orm phpunit

我有一些奇怪的学说行为。我从昨天起就一直在和它斗争,我无法解决问题。

我有A类,它具有到B类的单向映射。我已经为A类创建了一个可以检索对象B的测试

public function setUp()
{
    self::bootKernel();

    $this->container = self::$kernel->getContainer();
    $this->em = $this->container->get('doctrine.orm.entity_manager');
}

public function testStreamingMatchReturnsGuthMatchTable()
{
    $a = $this->em->getRepository('AppBundle:A')->find(1);
    var_dump($a->getB()); // it returns object B
}

它按预期工作,它返回对象B

然而,当我运行相同的代码但在开发环境(来自浏览器)而不是CLI时,它不会返回映射

代码:

public function getAction($id) 
{
    $a = $this->get('doctrine.orm.entity_manager');
    $a = $this->em->getRepository('AppBundle:A')->find(1);
    var_dump($a->getB()); // it returns null
}

关系标记为:

class A
{
     /* 
      * @ORM\OneToOne(targetEntity="B")
      * @ORM\JoinColumn(name="b_id", referencedColumnName="id")
      */
      private $b;
}

它不是原始代码,但它说明了问题。

所以我的问题是,如何让关系在开发环境中工作或者什么可能导致dev env中的问题?

我已经尝试过了:

  • 清除缓存
  • 禁用缓存
  • 更改映射
  • 检查DQL //同样的问题
  • 尝试使用浏览器上的测试配置
  • 运行它

到目前为止,没有任何工作,我已经没有想法了。

修改

我注意到它为测试env创建了代理类,但它没有为dev env创建它。

修改2

我尝试在Symfony2服务器上构建它并运行它。它不适用于Nginx(vagrant)。

0 个答案:

没有答案