首先,我是Symfony 2的完全noobie.问题听起来很简单,如果我尝试将一些上下文放入为什么以及如何需要它,它将开始变得混乱.
从本质上说我已经创建了一个表格,其中我手动过程,验证和使用学说等我手动创建一个控制器动作内的形式插入(它动态地建立从检索到的值从另一个对象).我假设可能有更好的方法来做到这一点,但由于我是Symfony的新手和拖网的日子,我看不到任何我需要做的解决方案.
因此,我不是简单地针对类/实体等构建表单,因此我将手动需要添加CSRF令牌或某种保护.
在正常情况下,您将创建FormType并配置默认选项以具有csrf_protection.然后一个简单的例子:
{{ form_widget(form._token) }}
Run Code Online (Sandbox Code Playgroud)
并且csrf令牌在那里.
由于我正在动态构建表单,因此我不确定如何为表单手动创建csrf令牌.有没有人有没有课程创建表单和添加csrf保护的经验?
亲切的问候Paul Pounder
我有一个必须处理Symfony 3.3中的帮助台请求的表单,我将使用twig渲染它.
调节器
/**
* @Route("/helpdesk/apri_ticket", name="helpdesk_apri")
*/
public function helpdeskNewAction(Request $request) {
$entity = new HelpDesk();
$form = $this->createFormBuilder($entity)
->add('title',TextType::class,array(
'label' => 'Titolo',
'attr' => array('class' => 'form-control')
))
->add('type',ChoiceType::class, array(
'choices' => array(
'Scegli...' => '0',
'Assistenza' => '1',
'Problema' => '2',
'Errore' => '3'
)
))
->add('message', TextType::class, array(
'label' => 'Messaggio',
'attr' => array('class' => 'form-control')
))
->add('submit',SubmitType::class, array(
'label' => 'Apri Ticket',
'attr' => array('class' => 'btn-success')
))
->getForm();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
print …Run Code Online (Sandbox Code Playgroud)