sonata 管理员当前实体

问题描述 投票:0回答:1

我如何访问奏鸣曲管理实体的 ID。假设我有一个实体 EndPoint,它有一个函数 getProject(),我如何获取该项目的 id。我尝试了下面的代码,但这给了我以下错误:尝试调用类“ContainerAgbGotv\srcApp_KernelDevDebugContainer”的名为“getProject”的未定义方法。

class EndPointAdmin extends AbstractAdmin{
protected function configureFormFields(FormMapper $form)
{   $container = $this->getConfigurationPool()->getContainer();
    $em = $container->getProject();
    
    $array = [];
    foreach ($em as $ems) {
        if (!empty($ems->getEnv())) {
            $array[$ems->getEnv()] = $ems->getEnv();
        }}
    $result = array_unique($array);
    $form
        
        ->add('name',ChoiceType::class, [
            'choices'=> $result,
            'placeholder' => 'Choose an option',

            'required' => false
        ])
        ->add('ipAdress',TextType::class)
        ->add('port',IntegerType::class)
               ;
}

感谢您的帮助。

php symfony sonata-admin symfony-sonata sonata-user-bundle
1个回答
1
投票

在管理员中您将有权访问

$this->getSubject()

这将返回该管理员的当前实体。值得注意的是,configureFormFields 用于创建和编辑实体,因此 getSubject() 可能返回 null。

© www.soinside.com 2019 - 2024. All rights reserved.