2014-01-16 174 views
0

在Symfony2中,我试图建立一个控制器,它响应PUT请求并从与请求相关联的头部(我使用Postman输入)中检索参数。该页面加载正常,但没有从标题中获取任何值。从PUT请求中检索参数

这是我的routing.yml文件:

mybundle_foo: 
    pattern: /foo 
    defaults: {_controller: myBundle:Default:foo } 
    requirements: {_methods: put, _format: html} 

在控制器:

public function fooAction (Request $request) { 
    $someParam = $request->request->get('someParam'); 
    return new Response("Some param is $someParam", 200); 
} 

当与 “someParam” 和密钥发送PUT请求与邮差的URL,一个头一个“bar”的值,我得到的输出只是Some param is

我以为你会像使用POST请求一样获取标题,但是 我猜不会。有没有办法获得PUT请求的头文件?

回答

0

问题在$request->request。您应该使用:

$request->get('someParam'); 

在您的控制器还检查:

var_dump($_PUT['someParam']); 
+0

只是去尝试。同样的结果。尝试var_dump $ _PUT superglobal使得Symfony抛出一个错误,即没有_PUT变量。 $ _POST工作,但Symfony抱怨没有'someParam'索引,这是有道理的,因为它是一个PUT请求而不是POST。 –

2

要从头得到一个参数:

$someParam = $request->headers->get("someParam"); 
+0

这救了我的生命哈哈4:57上午,没有睡觉,做一些技术考试要求哈哈。 Symfony是Laravel的一个非常复杂的版本:( – marknt15