我有一个只需要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令牌。
有人可以给我提供代码示例吗?
答案 0 :(得分:2)
对于您要执行的操作,您不需要专用的表单类型。只需使用基本类型:
use Symfony\Component\Form\Extension\Core\Type\FormType;
// ...
$form = $this->createForm(FormType::class);
// or
$form = $this->createFormBuilder()->getForm();
这将仅使用隐藏的crsf令牌输入呈现一个空表单。
答案 1 :(得分:1)
我只希望使用csrf令牌,没有数据类就可以轻松创建表单吗?