Symfony2 Sonata Admin访问容器

Pio*_*sik 1 php symfony symfony-sonata

我有一个具有必需活动用户字段的实体,因此我需要在以下位置添加活动用户的名称configureFormFields():

class DokumentAdmin extends Admin
{    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
                ->add('email')
                 ...
                ->add('user_name',null,array('required' => true, 'data' => "THIS IS A LOGGED ADMIN NAME"))
        ;
    }
Run Code Online (Sandbox Code Playgroud)

我试图使用一个监听器,

public function prePersist(LifecycleEventArgs $args)
    {
        $entity = $args->getEntity();
        if ($entity instanceof Dokument) {
         //set user name

        }
    }
Run Code Online (Sandbox Code Playgroud)

但我现在不在这里如何使用容器对象.

小智 5

您可以使用如下容器:

$this->getConfigurationPool()->getContainer();
Run Code Online (Sandbox Code Playgroud)

例如:

protected function configureFormFields(FormMapper $formMapper)
{
    $container = $this->getConfigurationPool()->getContainer();
    ...
    // Using the container here...
}
Run Code Online (Sandbox Code Playgroud)