このエンティティのクラスに複数の管理者が登録されている場合は、正しいエンティティを選択することはできません。
また、Pool::getAdminByAdminCode(string $code)
という方法で特定の管理者を取得することもできます。
例えば、あなたは可能性のために使用:あなたはこの混乱を作っ示唆してあなたの変数$adminClass
の名前:
if ($entityClass === MultipleAdminRegisteredEntity::class) {
$admin = $this->adminPool->getAdminById('specific_admin_id');
} else {
$entityClass = get_class($entity);
$admin = $this->adminPool->getAdminByClass($entityClass);
}
Pool::getAdminByClass(string $class)
がAdmin
ではなく、クラスstring
を返すということに注意してくださいは、 。 https://github.com/sonata-project/SonataAdminBundle/issues/3908エンティティに複数の管理者がある場合にPool:getAdminByClass()
メソッドが例外をスローしないように、デフォルトの管理者を定義することができるようにする方法を決定するために:
もここのGithub上の未解決の問題があることに注意してください。誰もこれを実装するためにこれについて十分な注意を払っているようではありません。
私はこのことを忘れてしまった –