为了账号安全,请及时绑定邮箱和手机立即绑定

symfony 中的教义协会

symfony 中的教义协会

PHP
蓝山帝景 2022-06-11 10:35:50
所以我已经和 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;这是我的数据库。
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

关系是正确的方法,尽管在实体上我会使用以下内容:


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()。基本上认为您将相关对象保存到实体而不是相关字段


查看完整回答
反对 回复 2022-06-11
  • 1 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号