从 Admin 中删除字段组
在某些情况下,当您扩展现有的 Admin 时,您可能希望从 admin 中删除字段,或者使其不显示。您可以使用 FormMapper
的 remove
方法手动删除每个字段
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 许可协议获得许可。