在Sonata Admin中,我需要在某些表单中禁用CSRF令牌,但有时我不想创建Form Type类,而是选择让Sonata生成表单,如下所示:
/** @var $form \Symfony\Component\Form\Form */
$form = $this->admin->getForm();
如何从此点禁用CSRF令牌?
答案 0 :(得分:1)
如果没有Form Type类,更改CSRF字段的最佳方法是在admin类中。为此,可以覆盖此功能:
public function getFormBuilder() {
$this->formOptions['data_class'] = $this->getClass();
$this->formOptions['csrf_protection'] = false;
$formBuilder = $this->getFormContractor()->getFormBuilder(
$this->getUniqid(),
$this->formOptions
);
$this->defineFormBuilder($formBuilder);
return $formBuilder;
}
答案 1 :(得分:0)
我认为无法从\Symfony\Component\Form\Form
实例访问实施$form->getConfig()
的对象(FormConfigInterface
):您可以调用它getOptions
或getOption
但没有setOption
方法。