Php symfony的学说协会
所以我已经和Symfony合作了一段时间,但有一件事让我感到困扰。 是关于。 问题是,我正在尝试实现一个用户朋友邀请和关系,并且有一个页面,用户可以看到他发送的邀请和待定的邀请 编辑:我使用多对一/一对多关联实现了这一点。然而 我的问题是——这是正确的做法吗 我的用户实体Php symfony的学说协会,php,symfony,orm,doctrine,associations,Php,Symfony,Orm,Doctrine,Associations,所以我已经和Symfony合作了一段时间,但有一件事让我感到困扰。 是关于。 问题是,我正在尝试实现一个用户朋友邀请和关系,并且有一个页面,用户可以看到他发送的邀请和待定的邀请 编辑:我使用多对一/一对多关联实现了这一点。然而 我的问题是——这是正确的做法吗 我的用户实体 class User implements UserInterface { private $id; /** * @ORM\Column(name="first_name", type="string", length=3
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()。基本上认为您正在将相关对象保存到实体,而不是相关字段