php - 自引用类属性的学说映射
问题描述
我有一个论坛实体,其中可能包含属于同一类的子论坛(论坛)。我在建立这种关系时遇到了麻烦。
下面的代码是我迄今为止在我的论坛课程中尝试过的
/**
* @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;
更新数据库方案后的问题我没有最终得到任何表格链接论坛和子论坛,所以我很困惑如何在以后将子论坛添加到现有论坛。任何帮助都非常感谢
解决方案
我相信您正在寻找的是一对多自引用映射
所以改变你的$subForums
喜欢:
/**
* @var Forum[]
* @ORM\OneToMany(targetEntity="Forum", mappedBy="parentForum", cascade={"all"}, orphanRemoval=true)
*/
private $subForums;
并添加$parentForum
,如下所示:
/**
* @ManyToOne(targetEntity="Forum", inversedBy="subForums")
* @JoinColumn(name="parent_id", referencedColumnName="id")
*/
private $parentForum;
推荐阅读
- selenium - 如何配置无头 Chromedriver 以模拟悬停设备?
- java - 在春季数据绑定期间,是否有另一种方法可以在列表中实例化抽象类的具体实例?
- javascript - Bootstrap 和 Popper 的 WordPress JS 加载问题
- javascript - 比较两个对象,如果对象键值对的一部分存在则返回 true
- geojson - 将 GeoJSON 转换为 DbGeometry
- ios - UIViewPropertyAnimator 在调用 finishAnimation(at:) 后在 dealloc 上崩溃
- blazor-server-side - 如何在连接到 Internet 的本地计算机的 Blazor 服务器中测试发送电子邮件
- python - 如何在 python 中进行快速的表不等式推断?
- twilio - 识别 IVR 上的部门(来电)
- php - 如何在wordpress中重定向注册页面