2014-01-16 127 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