【问题标题】:FOSUserBundle use MongoDB config validation instead of ORMFOSUserBundle 使用 MongoDB 配置验证而不是 ORM
【发布时间】:2015-07-30 00:53:38
【问题描述】:

我有一个带有 FOSUserBundle 和 SonataUserBundle 的 Symfony2 项目。两个包都配置为仅使用 ORM。

# FOS User Bundle
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: MyBundle\Entity\User
    group:
        group_class: MyBundle\Entity\Group
    from_email:
        address: foo@bar.com
        sender_name: Foo Bar

# SONATA User Bundle
sonata_user:
    security_acl: false
    manager_type: orm
    class:
        user: MyBundle\Entity\User
        group: MyBundle\Entity\Group
    impersonating:
        route: homepage
    admin:
        user:
            class: MyBundle\Admin\UserAdmin
            controller: SonataAdminBundle:CRUD
            translation: SonataUserBundle

但是当我想使用我的 User 类时,抛出一个错误,告诉 MongoDB annotations 类找不到。

尝试从命名空间加载类“Unique” “\Symfony\Component\Validator\Constraints\Doctrine\Bundle\MongoDBBundle\Validator\Constraints”。 您是否忘记了另一个命名空间的“使用”语句?

这条消息似乎是由

抛出的

/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/validation/mongodb.xml

由于我不想使用 MongoDB 驱动程序,为什么 FOSUser 使用 MongoDB 验证器?

【问题讨论】:

    标签: mongodb symfony orm fosuserbundle sonata-user-bundle


    【解决方案1】:

    这是一个老问题,但对于那些可能会遇到此错误的人:

    检查您自己为重写和自定义 fosUserBundle 制作的用户包。

    在检查我自己的用户包之前,花费了太多时间和大量搜索并且无法解决!

    只需删除新版本 fos 中不需要的这个文件夹:

    /Resources/config/validation
    

    祝你好运。

    【讨论】:

      【解决方案2】:

      这似乎是 FOSUserBudle 中的一个错误。

      作为一个肮脏的解决方法,我将<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity"> 行从orm.xml 复制到mongodb.xmlcouchdb.xml(都在/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/validation/ 中)。

      显然,这些文件实际上已加载,但不应该加载。

      编辑:事实上,这是 FOSUserBundle 中的一个错误,已在 1.3.6 版中修复,请参阅 https://github.com/FriendsOfSymfony/FOSUserBundle/issues/1851#issuecomment-108411883

      【讨论】:

        猜你喜欢
        • 2023-04-07
        • 2018-08-06
        • 2017-09-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-15
        • 1970-01-01
        • 1970-01-01
        • 2016-09-30
        相关资源
        最近更新 更多