簡體   English   中英

symfony 中的教義關聯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM