Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php symfony的学说协会_Php_Symfony_Orm_Doctrine_Associations - Fatal编程技术网

Php 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

所以我已经和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()。基本上认为您正在将相关对象保存到实体,而不是相关字段