禁用 Sonata Admin 生成的表单中的 CSRF 保护 [英] Disable CSRF protection in form generated by Sonata Admin
本文介绍了禁用 Sonata Admin 生成的表单中的 CSRF 保护的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 Sonata Admin 中,我需要禁用某些表单中的 CSRF 令牌,但有时我不想创建表单类型类,而是选择让 Sonata 生成表单,如下所示:
In Sonata Admin I need to disable the CSRF token in some of my forms but sometimes I don't want to create a Form Type class, choosing instead to let Sonata generate the form, as such:
/** @var $form \Symfony\Component\Form\Form */
$form = $this->admin->getForm();
如何从此禁用 CSRF 令牌?
How can I disable the CSRF token from this point?
推荐答案
如果没有 Form Type 类,更改 CSRF 字段的最佳方法是在 admin 类中.为此,可以覆盖此功能:
Without a Form Type class, the best way to change the CSRF field would be in the admin Class. For that, it's possible to override this function:
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;
}
这篇关于禁用 Sonata Admin 生成的表单中的 CSRF 保护的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文