这是我的实体:
/**
* @ORM\Table(name="Animal")
* @ORM\HasLifecycleCallbacks
*/
class Animal {
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var localizedcontent $lctitle
*
* @ORM\ManyToOne(targetEntity="localizedcontent",fetch="EAGER", cascade={"persist"})
* @ORM\JoinColumn(name="lcTitle", referencedColumnName="pkId", nullable=false)
*/
private $lctitle;
/**
* @var localizedcontent $lcdescription
*
* @ORM\ManyToOne(targetEntity="localizedcontent",fetch="EAGER", cascade={"persist"})
* @ORM\JoinColumn(name="lcDescription", referencedColumnName="pkId", nullable=false)
*/
private $lcdescription;
/**
* @ORM\PostLoad
*/
public function postLoad(){
$lct = $this->lctitle;
$lcd = $this->lcdescription;
}
这是我的 dql:
SELECT a,lct FROM Animal JOIN e.lctitle lct WHERE a.id=:id
当我开始 xdebug 时,它告诉我 lcdescription 是一个代理对象并且 lctitle 不存在。我不知道为什么。我认为 postLoad 事件为时过早,因为此时尚未加载本地化内容,对吗?是否有其他侦听器可以读取与 Animal 对象相关的 lctitle 的值?
谢谢