2013-04-25 5 views
1

Я работаю над проектом eZ publish 5. Эта CMS основана на Symfony 2. Я построил форму без класса, как описано в Tge странице: http://symfony.com/doc/current/book/forms.html#using-a-form-without-a-classSymfony 2 form in eZ Publish 5, CSRF intuition

На Ez публиковать 5 документацию (https://confluence.ez.no/display/EZP/Legacy+configuration+injection) Я читал, что мне нужно установить параметр намерение CSRF в «наследство ». Я не могу понять, как это сделать. Я пытался использовать метод добавления в моем formBuilder:

$this->createFormBuilder()->add('_token', 'csrf', array('intention'=>'legacy');

Но я получаю сообщение об ошибке "Не удалось загрузить тип CSRF.

Может кто-нибудь помочь мне в этом?

Спасибо.

+0

Привет, в какой версии _exact_ вы работаете? _dev-master_? Недавно были сделаны некоторые изменения в отношении CSRF. –

ответ

2

Хорошо, я попробовал.

Мой первый ответ на самом деле является вопросом: если вы не намерены выполнять какой-либо устаревший код ядра в качестве продолжения вашей формы, вам не нужно заботиться о намерении, я полагаю.

Намерения между Symfony и устаревшими ядрами должны соответствовать только если загружено Ядро Legacy (в этом случае оно проверит, есть ли токен, и если он действителен).

Если вам нужно использовать Наследство ядро, вы можете установить намерение наследство, передавая пользовательские параметры формы:

$formOptions = array('intention' => 'legacy'); 
$form = $this->createFormBuilder(null, $formOptions) 
    ->add('text', 'text') 
    ->getForm(); 

Установку намерения по умолчанию объясняются в http://symfony.com/doc/current/book/forms.html#csrf-protection, но я бы не советовал это , если вы не собираетесь полагаться только на устаревшее ядро.

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