所以我已经和 Symfony 合作了一段时间,但有一件事让我很烦恼。这是关于教义协会的。问题是我正在尝试实现用户朋友邀请和关系,并且有一个页面,用户可以看到他发送的邀请以及待处理的邀请。编辑:我使用多对一/一对多关联实现了它。但是我的问题是——教义协会是正确的做法吗?我的用户实体class User implements UserInterface{ private $id;/** * @ORM\Column(name="first_name", type="string", length=30) * * @Assert\NotBlank(message="First name cannot be a blank field", groups={"register"}) * @Assert\Length(min="3", max="30", groups={"register"}) *//** * @ORM\Column(type="string", length=50) * * @Assert\NotBlank(message="Username cannot be a blank field", groups={"register"}) * @Assert\Length(min="7", max="50", groups={"register"}) */private $username;/** * @ORM\Column(type="string", length=255) * * @Assert\Length(min="7", max="50", groups={"register"}) */private $password;/** * @ORM\OneToMany(targetEntity="App\Entity\UserInvitation", mappedBy="inviterId", orphanRemoval=true) */private $userInvitations;/** * @ORM\OneToMany(targetEntity="App\Entity\UserInvitation", mappedBy="invitedId", orphanRemoval=true) */private $pendingUserInvitations;//getters and setters 我的 UserInvitation 实体class UserInvitation{/** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */private $id;/** * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="userInvitations") * @ORM\JoinColumn(name="inviter_id", nullable=false) */private $inviterId;/** * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="pendingUserInvitations") * @ORM\JoinColumn(name="invited_id", nullable=false) */private $invitedId;/** * @ORM\Column(type="boolean") */private $status;这是我的数据库。
1 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
关系是正确的方法,尽管在实体上我会使用以下内容:
class UserInvitation
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="userInvitations")
* @ORM\JoinColumn(name="inviter_id", nullable=false)
*/
private $inviter;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="pendingUserInvitations")
* @ORM\JoinColumn(name="invited_id", nullable=false)
*/
private $invitee;
/**
* @ORM\Column(type="boolean")
*/
private $status;
然后你会 getInviter() 或 setInviter()。基本上认为您将相关对象保存到实体而不是相关字段
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消
