sonata admin - 仅当条件为真时才在特定现有选项卡的开头添加表单字段

sonataadmin - add form field at the begining of the ertain existing tab only if condition is true

我在不同的选项卡中有 $form 和一些字段,没问题,我想在表单中添加一个字段

$this->getSubject()->getId() 

如果这个条件不为空

我做了什么,在定义了在所有条件下都应该可见的表单之后,我添加了这部分代码,以在选项卡维度中添加字段 url(选项卡维度已经添加到之前的表单映射器定义中):

if($this->getSubject()->getId()  !== NULL){
$formMapper
        ->with('tab.dimension')
                ->add(
                'url',
                null,
                [
                    'required' => false,
                ]
            )
->end();
}

但我收到的错误是:

New tab was added automatically when you have added field or group. You should close current tab before adding new one OR add tabs before adding groups and fields.

有什么帮助吗?

像这样使用标签。如果您想添加分组而不是将其与函数一起使用。

if($this->getSubject()->getId() !== NULL) {
            $formMapper
                ->tab('dimension')
                    ->add('url', null, [
                        'required' => false,
                    ])
                ->end();
        }