我有一个论坛实体,其中可能包含子论坛,该子论坛属于同一类(论坛)。我在建立这种关系方面遇到麻烦。
下面的代码是我到目前为止在论坛课程中尝试过的代码
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="description", type="string", length=5000, nullable=false)
*/
private $description;
/**
* @ORM\Column(type="string")
*
* @Assert\NotBlank(message="Please, upload the forum wallpaper as a PNG file.")
* @Assert\File(mimeTypes={ "image/png" })
*/
private $wallpaper;
/**
* @var \DateTime
*
* @ORM\Column(name="added_date", type="datetime", nullable=false)
*/
private $addedDate;
/**
* @var array
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", cascade={"remove"})
*/
private $moderators;
/**
* @var Forum[]
* @ORM\OneToMany(targetEntity="Forum", mappedBy="id", cascade={"all"}, orphanRemoval=true)
*/
private $subForums;
/**
* @var \AppBundle\Entity\User
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\User")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* })
*/
private $userId;
更新数据库方案后出现的问题是,论坛和子论坛中没有任何表链接,所以我很困惑如何稍后再将子论坛添加到现有论坛中。任何帮助都非常有用
答案 0 :(得分:2)
我相信您正在寻找的是One-To-Many self-referencing mapping
因此,像这样更改您的 * * *
* *
* *
* *
....
:
$subForums
并添加/**
* @var Forum[]
* @ORM\OneToMany(targetEntity="Forum", mappedBy="parentForum", cascade={"all"}, orphanRemoval=true)
*/
private $subForums;
,如下所示:
$parentForum