[英]Doctrine Associations in symfony
所以我已經和 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
我的用戶邀請實體
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;
這是我的數據庫。
關系是正確的方法,盡管在實體上我會使用以下內容:
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()。 基本上認為您將相關對象保存到實體而不是相關字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.