Я хочу удалить sonatamediaadmin из панели инструментов.
Я использую Compiler pass
https://symfony.com/doc/4.4/service_container/compiler_passes.html
Теперь я добавил процесс src / Kernel. php функция (конечно, с class Kernel extends BaseKernel implements CompilerPassInterface
)
public function process(ContainerBuilder $container)
{
// in this method you can manipulate the service container:
// for example, changing some container service:
$definition = $container->getDefinition( 'sonata.media.admin.media' );
if ( $definition ) {
if ( $definition->hasTag( 'sonata.admin' )){
// var_dump($definition->getTag( 'sonata.admin' ));
// print "<hr>";
$tags = $definition->getTag( 'sonata.admin' );
$tags[ 0 ][ 'show_in_dashboard' ] = false;
$tags[ 0 ][ 'label' ] = "mymedia";
$definition->clearTag( 'sonata.admin' );
$definition->addTag( 'sonata.admin', $tags[0] );
// var_dump($definition->getTag( 'sonata.admin' ));
}
}
}
Тем не менее, носители не исчезли с приборной панели. и подтвердил, что теги корректно обновляются до того, как после
также очищается кеш php bin/console cache:clear
Что я пропускаю ??
array(1) { [0]=> array(6) { ["manager_type"]=> string(3) "orm" ["group"]=> string(30) "%sonata.media.admin.groupname%" ["label_catalogue"]=> string(45) "%sonata.media.admin.media.translation_domain%" ["label"]=> string(5) "media" ["label_translator_strategy"]=> string(38) "sonata.admin.label.strategy.underscore" ["icon"]=> string(30) "%sonata.media.admin.groupicon%" } }
array(1) { [0]=> array(7) { ["manager_type"]=> string(3) "orm" ["group"]=> string(30) "%sonata.media.admin.groupname%" ["label_catalogue"]=> string(45) "%sonata.media.admin.media.translation_domain%" ["label"]=> string(7) "mymedia" ["label_translator_strategy"]=> string(38) "sonata.admin.label.strategy.underscore" ["icon"]=> string(30) "%sonata.media.admin.groupicon%" ["show_in_dashboard"]=> bool(false) } }