Symfony主义自我参考

时间:2015-10-24 08:26:19

标签: symfony doctrine

是否可以在实体中拥有自引用字段?像这样:

class Dir
{
   /**
    * @ORM\Id
    * @ORM\Column(type="integer")
    * @ORM\GeneratedValue(strategy="AUTO")
    */
   protected $id;

   /**
    * @ORM\Column(type="integer")
    */
   protected $parent; // reference to other Dir
}

1 个答案:

答案 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属性。