禁用 Sonata Admin 生成的表单中的 CSRF 保护 [英] Disable CSRF protection in form generated by Sonata Admin

查看:29
本文介绍了禁用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆