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