我无法理解......
为什么我无法访问Country
表?
countryName
应该显示Great Britain
但不会显示。
这是我的转储($ User):
我的User
实体代码:
/**
*
* @ORM\ManyToOne(targetEntity="Dashboard\MainBundle\Entity\Country", cascade={"persist"})
* @ORM\JoinColumn(name="country_id", referencedColumnName="id", nullable=true)
*
*/
private $countryId;
我的Country
实体代码:
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
答案 0 :(得分:1)
您的Country
对象现在只是一个代理对象 - dump
函数不会调用Doctrine来获取相关对象。在dump之前尝试获取对象,例如:
dump($User->getCountry()):
dump($User);
或尝试在QueryBuilder中加入Country
或者在Doctrine2 here
中找到有关延迟加载的信息答案 1 :(得分:1)
根据您获得用户的方式,可能是您正在使用的延迟加载,只有在您明确调用getter时才能获得该国家/地区,以便始终通过用户尝试获取国家/地区:
/**
*
* @ORM\ManyToOne(targetEntity="Dashboard\MainBundle\Entity\Country", cascade={"persist"}, fetch="EAGER")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id", nullable=true)
*
*/
private $countryId;
但是我们仍然需要知道你是如何让用户延迟加载可能会覆盖fetch eager。