教义自引用关联映射(Symfony)

Posted

技术标签:

【中文标题】教义自引用关联映射(Symfony)【英文标题】:Doctrine Self-referencing Association Mapping (Symfony) 【发布时间】:2016-08-20 15:42:26 【问题描述】:

我想创建一个常见问题解答系统,管理员可以在其中创建另一个常见问题解答常见问题解答中的子常见问题解答等等..

我知道我需要自引用,但我该如何解决这个问题?

我的实体 FAQ.php 如下所示:

 /**
  * @OneToMany(targetEntity="Faq", mappedBy="parent")
  */
 private $children;

 /**
  * @ManyToOne(targetEntity="Faq", inversedBy="children")
 * @JoinColumn(name="parent_id", referencedColumnName="id")
  */
 private $parent;

 public function __construct() 
   $this->children = new \Doctrine\Common\Collections\ArrayCollection();
 

我不明白的是 inversedBy 以及如何使用这一切。

谢谢。

【问题讨论】:

***.com/questions/12493865/… 可能会有所帮助。 还有doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/… . 【参考方案1】:

您必须添加一些方法来添加 SubFAQ 并返回所有 SubFAQ。

/**
 * @param Faq $child
 *
 * @return Faq
 */
public function addSubFAQ($child)

    $this->children[] = $child;

    return $this;


/**
 * @return ArrayCollection
 */
public function getSubFAQs()

    return $this->children;

【讨论】:

以上是关于教义自引用关联映射(Symfony)的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 映射错误:“映射相互不一致”和“关联引用了不存在的反向侧字段”

将带有引用的关联数组作为值保存在教义-mongodb中

Symfony学说OneToAll关系

坚持时的教义关联完整性约束

教义自定义数据类型

Symfony 2 自引用映射的属性“父”构建形式都不是