Flo*_*cel 5 mapping proxy inheritance class
访问doctrine 2中的代理类属性时,EntityNotFoundException可能的原因是什么?无论如何,以下是我的实体的结构:
/**
* @ORM\Table(name="comments")
*
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="comment_type", type="smallint")
* @ORM\DiscriminatorMap({
* 1 = "VisitorComment",
* 2 = "MemberComment"
* })
*/
class Comment
{
//with common properties of its subclasses
}
Run Code Online (Sandbox Code Playgroud)
子类如下:
/**
* @ORM\Table(name="member_comments")
*/
class MemberComment extends Comment
{
/**
* owning side
*
* @var Member $author
*
* @ORM\ManyToOne(targetEntity="Member")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id", nullable=false)
*/
private $author;
/**
* Set author
*
* @param Member $author
*/
public function setAuthor($author)
{
$this->author = $author;
}
/**
* Get author
*
* @return Member
*/
public function getAuthor()
{
return $this->author;
}
}
/**
* @ORM\Table(name="visitor_comments")
*/
class VisitorComment extends Comment
{
/**
* owning side
*
* @var Visitor $author
*
* @ORM\ManyToOne(targetEntity="Visitor")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id", nullable=false)
*/
private $author;
/**
* Set author
*
* @param string $author
*/
public function setAuthor($author)
{
$this->author = $author;
}
/**
* Get author
*
* @return Visitor
*/
public function getAuthor()
{
return $this->author;
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用$ comment-> getAuthor() - > getFirstName()< 假设作为Member或Visitor实体的作者具有firstName属性 > 时,会发生异常.在这种情况下,getAuthor()返回VisitorProxy或MemberProxy的代理类.
请帮助我.我还是学说新手.