我有一些奇怪的学说行为。我从昨天起就一直在和它斗争,我无法解决问题。
我有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中的问题?
我已经尝试过了:
到目前为止,没有任何工作,我已经没有想法了。
修改
我注意到它为测试env创建了代理类,但它没有为dev env创建它。
修改2
我尝试在Symfony2服务器上构建它并运行它。它不适用于Nginx(vagrant)。