Symfony 如何向sonata用户绑定注入不同的用户管理器

Symfony 如何向sonata用户绑定注入不同的用户管理器,symfony,sonata-user-bundle,Symfony,Sonata User Bundle,我尝试使用sonata管理包和sonata包。我已经创建了ApplicationSontaUserBundle,如果我使用fosUserInterface,一切都可以正常工作。但我有另一个用户包,例如名为Sso。因此,在我的应用程序中,我需要使用Sso用户管理器而不是FosUserManager。sonata用户包包含一个“admin_orm.xml”,在这个服务配置文件中,我在文件中有一行:(在sonata用户包中) 而不是原来的FosUserInterface。但是,它从不接受我的设置 A

我尝试使用sonata管理包和sonata包。我已经创建了ApplicationSontaUserBundle,如果我使用fosUserInterface,一切都可以正常工作。但我有另一个用户包,例如名为Sso。因此,在我的应用程序中,我需要使用Sso用户管理器而不是FosUserManager。sonata用户包包含一个“admin_orm.xml”,在这个服务配置文件中,我在文件中有一行:(在sonata用户包中)

而不是原来的FosUserInterface。但是,它从不接受我的设置

 Application/Sonata/UserBundle/Resources/config/admin_orm.xml
它总是抱怨用户管理器是一个FosUserInterface对象,我需要自己的用户管理器。如果我改变主意

/供应商/sonata项目/user bundle/sonata/UserBundle/Resources/config/admin_orm.xml


设置我自己的用户管理器,一切正常。任何人都可以告诉我如何覆盖此文件?

好吧,两年后,我找到了解决方案。这太愚蠢了。 我需要定义dependencyInjection类来加载xml,然后将加载服务。如果不写入dependencyInjection类,则不会加载子捆绑包的配置文件。就像正常的捆绑一样。配置文件不能“覆盖”,每个包的配置文件都将是红色的,最后一个将获胜

        <call method="setUserManager">
            <argument type="service" id="sso.user_manager" />
        </call>
use xxx\SsoBundle\Entity\UserManager;
....
/**
 * @param UserManager $userManager
 */
public function setUserManager(UserManager $userManager)
{
    $this->userManager = $userManager;
}
 Application/Sonata/UserBundle/Resources/config/admin_orm.xml