是否可以在实体中拥有自引用字段?像这样:
class Dir
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="integer")
*/
protected $parent; // reference to other Dir
}
答案 0 :(得分:4)
普通关联和自我引用之间没有区别。
以下可能有效:
class Dir
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Dir")
*/
private $parent;
}
详细了解Doctrine
here中的关联。
如果您不打算从您的实体继承,也应该使用private
属性。