2017-04-13 72 views
0

我有功能寫GET路線的Symfony與FOSRestBundle

/** 
* My function 
* 
* @FOS\View() 
* @FOS\Get("/myfunction/?param1={p1}&param2={p2}&paramn={pn}") 
* 
* @param integer $param1 
* @param integer $param2 
* @param integer $paramn 
* @return mixed 
*/ 
public function getMyFunction($param1, $param2, $paramn) 
{ 
    return new Response($param1. ' ' . $param1. ' ' . $paramn); 
} 

但是,當我打電話http://host/myfunction/?param1=1&param1=2&paramn=3這麼想的工作。

函數的定義有什麼問題?


更新:新功能

/** 
* My function 
* 
* @FOS\View() 
* @FOS\Get("/myfunction/") 
* 
* Request $request 
* @return mixed 
*/ 
public function getMyFunction(Request $request) 
{ 
    $requestParams = $request->request->all(); 

    return new Response($requestParams['param1']); 
} 

而且,現在我打電話http://host/myfunctin/?param1=1,但還是這麼想的工作。

錯誤: 「通知:未定義指數:參數1」

請求GET參數不是很好嗎?

謝謝!

+1

With @FOS \ Get你只能指定路徑。如果您需要獲取查詢字符串的參數,則可以使用請求對象來完成。 – Federkun

+0

你想使用'query'參數包代替'request' – Federkun

回答

2

您必須從路由中刪除查詢字符串參數。

爲了得到它們,你必須在函數簽名中注入一個Request對象,然後使用$ request-> get('parametername')來檢索它。

+0

Ops,你絕對正確! – Carlos

+0

我改變了請求,但不工作。我用當前版本的代碼更新了最初的帖子。 –

+1

嘗試$ request-> get('param1') – Carlos