我需要在包含表单的每个控制器功能之前激活过滤器。 我创建一个TypeExtension
class SoftDeleteTypeExtension extends AbstractTypeExtension{
protected $em;
/*
* Constructor.
*
* @param UserManagerInterface $userManager
*/
public function __construct(ObjectManager $em)
{
$this->em = $em;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$form=$builder->getForm();
$em=$this->em;
if (!$em->getFilters()->isEnabled('softdeleteable')){
$em->getFilters()->enable('softdeleteable');
}
}
public function getExtendedType()
{
return FormType::class;
}
}
但是会为表单中的每个字段调用buildForm。
我测试过$builder->getForm()->isRoot()
,但这是真的吗?
谢谢