我是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(),));
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,但如果我'method':'GET'
改为'method':'POST'
,那么它工作正常.
小智 18
在StudentForm类的buildForm方法中指定表单的方法.因此,handleRequest将能够获取GET参数.
class StudentForm
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// ...
$builder->setMethod('GET');
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是因为在 POST 请求中,参数是在 HTTP 请求的正文中传递的。该handleRequest 会在请求正文中查找这些值。但在 GET 请求中,参数是直接在 url 中传递的。所以我认为这就是处理不起作用的原因。
通常我们使用 GET 来获取页面或 url,并使用 POST 来将信息发送到服务器。
归档时间: |
|
查看次数: |
7295 次 |
最近记录: |