Symfony/SonataUser - BaseUser 的抽象方法出错

Symfony/SonataUser - Error with abstract method of BaseUser

我正在尝试安装 SonataUserBundle,所以我遵循了文档(并使用 EasyExtendBundle,但我收到此错误:

[Symfony\Component\Debug\Exception\FatalErrorException]                                              
  Error: Class Sonata\UserBundle\Entity\BaseUser contains 35 abstract methods and must therefore be declared abstract
   or implement the remaining methods (FOS\UserBundle\Model\UserInterface::setUsername, FOS\UserBundle\Model\UserInte
  rface::getUsernameCanonical, FOS\UserBundle\Model\UserInterface::setUsernameCanonical, ...) 

我没有更改 EasyExtends 生成的用户实体的任何内容...

配置看起来不错:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Application\Sonata\UserBundle\Entity\User
    group:
        group_class: Application\Sonata\UserBundle\Entity\Group 
        group_manager: sonata.user.orm.group_manager
    service:
        user_manager: sonata.user.orm.user_manager

我的作曲家:

"symfony/symfony": "2.8.*",
...
"friendsofsymfony/user-bundle": "~1.3",
"sonata-project/admin-bundle": "~2.2",
"sonata-project/doctrine-orm-admin-bundle": "~2.3",
"sonata-project/user-bundle": "^2.2",

有人对此有解决方案吗?

感谢帮助!

fos_user 的配置错误...您必须使用 Sonata 命名空间实体...而不是在应用程序命名空间

中生成的实体
fos_user:
    db_driver:      orm # can be orm or odm
    firewall_name:  main
    user_class:     Sonata\UserBundle\Entity\BaseUser


group:
    group_class:   Sonata\UserBundle\Entity\BaseGroup

注意 user_class 和 group_class 引用 BaseEntity Sonata Docs

我终于从一个新项目开始,以https://github.com/sonata-project/sandbox为基础(我的项目将使用其他一些奏鸣曲项目)

所以,可能是配置错误...

估计是sonata和friendsofsymfony的版本问题。 我的composer.json是这样的

"sonata-project/easy-extends-bundle": "^2.1",
"sonata-project/user-bundle": "^2.2"
"friendsofsymfony/user-bundle": "^1.3",
"friendsofsymfony/jsrouting-bundle": "^1.6"

也许如果我们能有匹配的版本……