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

Symfony-创建第二个用户类

Symfony-创建第二个用户类

PHP
莫回无 2021-05-03 16:25:16
我App\Entity\User上课。我想创建一个新用户,但是没有一个电子邮件地址。但是在我的User类中,电子邮件是唯一的,不能为null。这意味着我必须创建一个名为TransUser的新User类。现在,我希望能够将此类作为与App \ Entity \ User类相同的类,但不包含email-列,或者至少具有不唯一且可以为null的email列。在PHP中使用Symfony做到这一点的最佳方法是什么?
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您可以修改User班级以允许使用空电子邮件地址。(UNIQUE仍然允许这样做)。

但是,在注册/验证/登录上,您最终必须区分不同的用户类型。

此解决方案是类扩展(或单表继承)。但是在某个地方,您可能会有一个准鉴别符列。; o)

显然,优点是您可以拥有一个用户表,这使所有引用/外键更加容易。


查看完整回答
反对 回复 2021-05-07
?
慕码人2483693

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

您可以根据需要为用户提供尽可能多的类,只需在提供者部分的security.yaml中将此新类定义为用户提供者,例如,可以在常规用户旁边拥有后端用户。这就是您security.yaml中的提供者部分的样子


providers:

    backend_users:

        entity:

            class: App\Entity\BackendUser

    users:

        entity:

            class: App\Entity\User

依此类推,您可以在这里找到更多有关它的信息。如果要限制到达某些路由的用户类型并为每个防火墙添加提供者密钥,则需要更新防火墙部件


main:

 logout:

   path: app_logout

 anonymous: true

 provider: backend_users

 guard:

    #....


查看完整回答
反对 回复 2021-05-07
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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