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 

我的 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;

这是我的数据库。

http://img1.mukewang.com/62a3ff9e0001cb1404540213.jpg

蓝山帝景
浏览 146回答 1
1回答

千万里不及你

关系是正确的方法,尽管在实体上我会使用以下内容: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()。基本上认为您将相关对象保存到实体而不是相关字段
打开App,查看更多内容
随时随地看视频慕课网APP