仅包含 CSRF 令牌的表单
Form with CSRF token only
我有一个只需要 CRSF 令牌的表格。
其他参数由URL本身提供,或者是默认值。
/**
* @Route("/projets/projet-{projetId}/accessoires/accessoire-{accessoireId}/new/", name="projetaccessoire_new")
* @ParamConverter("projet", options={"mapping"={"projetId"="id"}})
* @ParamConverter("accessoire", options={"mapping"={"accessoireId"="id"}})
* @Method({"POST")
*
* @param Request $request
* @param Projet $projet
* @param Accessoire $accessoire
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function newAction(Request $request, Projet $projet, Accessoire $accessoire) {
$projetAccessoire=new ProjetAccessoire();
$form=$this->createForm(ProjetAccessoireType::class, $projetAccessoire, array(
'action'=>$this->generateUrl('projetaccessoire_new', array('projetId'=>$projet->getId(), 'accessoireId'=>$accessoire->getId())),
'method'=>'POST',
));
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$projetAccessoire->setProjets($projet)
->setAccessoires($accessoire)
->setPosX(0)
->setPosY(0)
->setRotZ(0);
$em=$this->getDoctrine()->getManager();
$em->persist($projetAccessoire);
$em->flush();
return $this->json(array(
'message_info'=>array(
array(
'message'=>'Projet enregistré',
'type'=>'success',
),
),
));
}
return $this->render($this->path.'projetaccessoire_new.html.twig', array(
'projet'=>$projet,
'accessoire'=>$accessoire,
'projetAccessoire'=>$projetAccessoire,
'form'=>$form->createView(),
));
}
问题是,我应该在 ProjetAccessoireType
中输入什么才能只有 CRSF 令牌。
谁能给我一个代码示例?
对于您要执行的操作,您不需要专用的表单类型。只需使用基本类型:
use Symfony\Component\Form\Extension\Core\Type\FormType;
// ...
$form = $this->createForm(FormType::class);
// or
$form = $this->createFormBuilder()->getForm();
这将呈现一个只有隐藏的 crsf-token 输入的空表单。
我只需要 csrf 令牌,创建没有数据的表单会不会更容易 class?
我有一个只需要 CRSF 令牌的表格。 其他参数由URL本身提供,或者是默认值。
/**
* @Route("/projets/projet-{projetId}/accessoires/accessoire-{accessoireId}/new/", name="projetaccessoire_new")
* @ParamConverter("projet", options={"mapping"={"projetId"="id"}})
* @ParamConverter("accessoire", options={"mapping"={"accessoireId"="id"}})
* @Method({"POST")
*
* @param Request $request
* @param Projet $projet
* @param Accessoire $accessoire
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function newAction(Request $request, Projet $projet, Accessoire $accessoire) {
$projetAccessoire=new ProjetAccessoire();
$form=$this->createForm(ProjetAccessoireType::class, $projetAccessoire, array(
'action'=>$this->generateUrl('projetaccessoire_new', array('projetId'=>$projet->getId(), 'accessoireId'=>$accessoire->getId())),
'method'=>'POST',
));
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$projetAccessoire->setProjets($projet)
->setAccessoires($accessoire)
->setPosX(0)
->setPosY(0)
->setRotZ(0);
$em=$this->getDoctrine()->getManager();
$em->persist($projetAccessoire);
$em->flush();
return $this->json(array(
'message_info'=>array(
array(
'message'=>'Projet enregistré',
'type'=>'success',
),
),
));
}
return $this->render($this->path.'projetaccessoire_new.html.twig', array(
'projet'=>$projet,
'accessoire'=>$accessoire,
'projetAccessoire'=>$projetAccessoire,
'form'=>$form->createView(),
));
}
问题是,我应该在 ProjetAccessoireType
中输入什么才能只有 CRSF 令牌。
谁能给我一个代码示例?
对于您要执行的操作,您不需要专用的表单类型。只需使用基本类型:
use Symfony\Component\Form\Extension\Core\Type\FormType;
// ...
$form = $this->createForm(FormType::class);
// or
$form = $this->createFormBuilder()->getForm();
这将呈现一个只有隐藏的 crsf-token 输入的空表单。
我只需要 csrf 令牌,创建没有数据的表单会不会更容易 class?