跳到内容

从 Admin 中删除字段组

编辑此页

在某些情况下,当您扩展现有的 Admin 时,您可能希望从 admin 中删除字段,或者使其不显示。您可以使用 FormMapperremove 方法手动删除每个字段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
final class UserAdmin extends Sonata\UserBundle\Admin\Model\UserAdmin
{
    protected function configureFormFields(FormMapper $form): void
    {
        parent::configureFormFields($form);

        $form
            ->remove('facebookName')
            ->remove('twitterUid')
            ->remove('twitterName')
            ->remove('gplusUid')
            ->remove('gplusName');
    }
}

只要扩展的 Admin 不使用 Group 来组织其字段,这就可以工作。在上面的示例中,我们尝试删除来自 User Admin 的所有字段,该 Admin 随 SonataUserBundle 一起提供。但是,由于我们删除的字段都属于表单的 'Social' Group,因此这些字段将被删除,但空组将保留。对于这种情况,FormMapper 提供了一个方法,允许您删除整个表单组: removeGroup

1
2
3
4
5
6
7
8
9
final class UserAdmin extends Sonata\UserBundle\Admin\Model\UserAdmin
{
    protected function configureFormFields(FormMapper $form): void
    {
        parent::configureFormFields($form);

        $form->removeGroup('Social', 'User');
    }
}

这将从表单中删除整个 'Social' 组,该组恰好包含我们在第一个示例中手动删除的所有字段。第二个参数是组所属的选项卡的名称。这是可选的。但是,如果未提供,则假定您指的是 'default' 选项卡。如果组在另一个选项卡上,则在未提供此选项卡时,将不会删除该组。该方法还有第三个可选参数,可让您选择是否在删除选项卡的所有组时也删除选项卡。默认情况下,此行为已禁用,但可以通过将 removeGroup 的第三个参数设置为 true 来启用。

本作品(包括代码示例)根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本