fos_user 配置的两个不同的 user_class

Posted

技术标签:

【中文标题】fos_user 配置的两个不同的 user_class【英文标题】:Two different user_class for fos_user configuration 【发布时间】:2019-06-23 23:31:14 【问题描述】:

我有一个基于 Symfony 3.4 和 Sonata Admin 的网站,带有 SonataNews Bundle、SonataUser 包等。一切正常。

现在我的客户想要网上商店,我为 symfony 选择了 aimeos。现在问题出在用户身上。在 fos_user 我有:

 fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    #user_class: Sonata\UserBundle\Entity\BaseUser
    user_class: Application\Sonata\UserBundle\Entity\User

    group:
        group_class:   Application\Sonata\UserBundle\Entity\Group
        group_manager: sonata.user.orm.group_manager # If you're using doctrine orm (use sonata.user.mongodb.group_manager for mongodb)

    service:
        user_manager: sonata.user.orm.user_manager

    from_email:
        address: "example@example.com"
        sender_name: "My website"

但 Aimeos 想要这样的配置:

fos_user:
    db_driver: orm
    user_class: Aimeos\ShopBundle\Entity\FosUser
    firewall_name: aimeos_myaccount
    from_email:
        address: "me@example.com"
        sender_name: "Test shop"

不同的防火墙和用户类。如果我改变这个,那么奏鸣曲管理员就会出现问题,因为一些奏鸣曲捆绑包使用 SonataUserBundle,例如新闻捆绑包。如果没有 user_class:Aimeos\ShopBundle\Entity\FosUser,aimeos 将无法工作。

我的问题是:是否可以(以及如何)告诉 Aimeos 使用 SonataUserBundle?或者以某种方式扩展这些类?

【问题讨论】:

【参考方案1】:

扩展 Sonata 用户实体类并添加来自 Aimeos FosUser entity class 的附加属性的代码

【讨论】:

以上是关于fos_user 配置的两个不同的 user_class的主要内容,如果未能解决你的问题,请参考以下文章

服务“fos_user.mailer”依赖于不存在的服务“模板”

Sonata + Fos_user - 如何仅显示与用户相关的实体?

Symfony 2.7 / 3 - Doctrine:您请求了一个不存在的服务“fos_user.doctrine_registry”

The path "fos_user.from_email.address" cannot contain an empty value, but got null.

Symfony,FOS 用户:使用空输入密码编辑用户

失败的作曲家更新,依赖于非存在的服务