[我正在使用Symfony 4,我想制作自己的表单,但是要进行插入,我需要由表单生成的令牌,有一种方法可以生成表单并获取或其他我可以得到的做。
public function new(Request $request): Response
{
$customer = new Customers();
$form = $this->createForm(Customers1Type::class, $customer); // <- here
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($customer);
$em->flush();
return $this->redirectToRoute('customers_index');
}
return $this->render('customers/new.html.twig', [
'customer' => $customer,
'form' => $form->createView(),
]);
}
您基本上不需要自己获取和呈现令牌。 Symfony表单在内部进行处理,并且form_end函数呈现隐藏字段。
[检查生成的表单时,您将看到:
<input type="hidden" id="customer__token" name="customer[_token]" value="the_long_token_auto_generated" /></form>
然后在控制器操作的内部,您可以通过$ request方法的获得令牌:
$token = $request->request->get('customer')['_token'];