symfonysymfony-2.1symfony-sonatasonata-admin

How to get container instance in sonata Admin class?


I need to parse some configurations parameters from my config.yml such as enabled languages. But when i try to do that by using the normal symfony method: $this->container->get('my_params'); it fails because my admin class extends Sonata\AdminBundle\Admin\Admin class which does not extend the Symfony\Component\DependencyInjection\ContainerAware class.

Please, How to get the container inside the sonata Admin class ?

Now i'm resolving this problem by overriding the sonata Admin Class to make it extends the ContainerAware.


Solution

  • probably already resolved, because its an old question, but just for reference, the container is already available in admin class using the configuration pool...

    $this->getConfigurationPool()->getContainer();
    

    Of course, it is better practice to inject services in the admin class, but, like in the controllers. why would someone, take the time to configure setter injection if already has the container available?