【问题标题】:Symfony/SonataUser - Error with abstract method of BaseUserSymfony/SonataUser - BaseUser 的抽象方法出错
【发布时间】:2016-09-01 21:00:26
【问题描述】:

我正在尝试安装 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",

有人对此有解决方案吗?

感谢您的帮助!

【问题讨论】:

  • 再次检查您的版本是否正确。保存您的 composer.lock 并尝试运行 composer update。看看它是否有效。

标签: symfony sonata sonata-user-bundle


【解决方案1】:

我猜这是奏鸣曲和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"

也许我们可以有匹配的版本……

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      fos_user 的配置错误...您必须使用 Sonata 命名空间实体...而不是 Application 命名空间中生成的实体

      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

      【讨论】:

      • 在文档的最后,写着 fos_user 配置应该被这个替换...
      • 可以提供作曲家表演的结果 | grep奏鸣曲?这可能会有所帮助......我的发电机也有问题。
      猜你喜欢
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2012-09-21
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 2015-04-11
      相关资源
      最近更新 更多