所以我已經和 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()?;旧险J為您將相關對象保存到實體而不是相關字段
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消