2016-08-25 2 views
0

В Sonata Admin Мне нужно отключить токен CSRF в некоторых из моих форм, но иногда я не хочу создавать класс типа формы, вместо этого вместо того, чтобы позволить Sonata сгенерировать форму, как таковой:Отключить защиту CSRF в форме, созданной Sonata Admin

/** @var $form \Symfony\Component\Form\Form */ 
$form = $this->admin->getForm(); 

Как я могу отключить токен CSRF с этого момента?

ответ

0

Без класса Тип Тип наилучшим образом изменить поле CSRF будет в классе администратора. Для этого можно переопределить эту функцию:

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; 
} 
0

Я думаю, что это невозможно, так как из \Symfony\Component\Form\Form, например, вы имеете доступ к объекту ($form->getConfig()), который реализует FormConfigInterface: вы можете позвонить на него getOptions или getOption но нет setOption метода.

+0

Возможно, есть и другой способ, не отключающий защиту маркера CSRF во всем приложении – ecc

Смежные вопросы