我是Symfony2中的noobie。 handleRequest()函数不适用于"GET"方法,而相同的代码适用于"POST"

public function addAction(Request $request){
    $std = new Student();

    $form = $this->createForm(new StudentForm, $std,
        array( 'method'=>'GET'));

    $form->handleRequest($request);

    if($form->isSubmitted()){
        $std= $form->getData();
        $em= $this->getDoctrine()->getManager();
        $em->persist($std);
        $em->flush();
        return $this->render('target.twig');
    }

    return $this->render('target twig',
        array('newStdForm'=> $form->createView(),));
}

上面的代码不起作用,但是如果我将'method':'GET'更改为'method':'POST',那么它可以正常工作。

最佳答案

我认为这是因为在POST请求中,参数是在HTTP请求的正文中传递的。该handleRequest在请求主体内查找那些值。但是在GET请求中,参数直接在url中传递。因此,我认为这就是处理不起作用的原因。

通常,我们使用GET来获取页面或URL,并使用POST来将信息发送到服务器。

关于symfony - handleRequest($ request)在Symfony 2中的 "GET"方法中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20159903/

10-11 08:58
查看更多