2

sonata admin bundle と sonata bundle を使用しようとしています。ApplicationSontaUserBundle を作成しました。fosUserInterface を使用すると、すべて正常に動作します。しかし、たとえば Sso という名前の別のユーザー バンドルがあります。したがって、私のアプリでは、FosUserManager の代わりに Sso userManger を使用する必要があります。Sonata ユーザー バンドルには「admin_orm.xml」が含まれており、このサービス構成ファイルには、ファイルに次の行があります:(sonata ユーザー バンドル内)

   <service id="sonata.user.admin.user" class="%sonata.user.admin.user.class%">
        <tag name="sonata.admin" manager_type="orm" label="users" label_catalogue="SonataUserBundle" label_translator_strategy="sonata.admin.label.strategy.underscore" />
        <argument />
        <argument>%sonata.user.admin.user.entity%</argument>
        <argument>%sonata.user.admin.user.controller%</argument>
        <call method="setUserManager">
            <argument type="service" id="fos_user.user_manager" />
        </call>
        <call method="setTranslationDomain">
            <argument>%sonata.user.admin.user.translation_domain%</argument>
        </call>
    </service>

Application/Sonata/UserBundle/Resources/config/admin_orm.xml には、次のものがあります。

        <call method="setUserManager">
            <argument type="service" id="sso.user_manager" />
        </call>

Application/Sonata/Admin/Model/UserAdmin.php で別の userAdmin を定義したため

use xxx\SsoBundle\Entity\UserManager;
....
/**
 * @param UserManager $userManager
 */
public function setUserManager(UserManager $userManager)
{
    $this->userManager = $userManager;
}

元の FosUserInterface の代わりに。しかし、それは私の設定を取り込まない

 Application/Sonata/UserBundle/Resources/config/admin_orm.xml

ユーザーマネージャーが FosUserInterface オブジェクトであり、独自のユーザーマネージャーが必要であると常に不平を言っています。私が変更した場合

/vendor/sonata-project/user-bundle/Sonata/UserBundle/Resources/config/admin_orm.xml

独自のユーザーマネージャーを設定すると、すべて正常に動作します。誰でもこのファイルを上書きする方法を教えてもらえますか?

4

1 に答える 1