2017-02-09 54 views
0

我使用基於Zend Framework 3的REST API服務。我堅持要處理PUT請求的時刻。讓它成爲這樣的:ZendFramework 3 PUT方法參數訪問

PUT /document/14 
Request parameters are: { 
    token: '.. some string here ..', 
    name: '....', 

} 

的事情是,我甚至不能 「令牌」,因爲無論是$這個 - > Request()方法 - > getQuery(),也不$這個 - >的getPost()根本不包含任何參數。

我見過一些建議,像註冊Zend_Controller_Plugin_PutHandler,但我沒有Zend Framework中找到這樣的類3.

+1

是否使用AbstractRestfulController(因爲你實際上是應該做的) OR AbstractActionController並試圖趕上POST數據? – smozgur

+0

... AbstractActionController並試圖捕獲後數據$ this-> params() - > fromPost('token',false)? – smozgur

+0

我使用AbstractRestfulController和 - > fromPost('token',false)給出空的結果。 – MaratMS

回答

1

你需要得到JSON數據,並沒有PARAMS幫手的是,如此之快的黑客將是:

// In your Controller action 
$content = $this->getRequest()->getContent(); 
$data = json_decode($content, true); 

var_dump($data); // here you will have your json as array 

這樣的工作,但更好的方法是使用AbstractRestfulController。 將其擴展並且您將自動在方法更新($ id,$ data)中注入$ id和$ data。此外,您還將擁有RESTful API的所有其他方法。

您應該檢查實施這個類的更多信息,尤其是方法jsonDecode

+0

你已經幫了我一些忙。但我不需要解碼json數據,因爲 - > getContent()給了我多部分的表單數據。所以我有另一個問題。有沒有任何嵌入式ZF3方法來解碼這樣的代碼? :) – MaratMS

+0

您的請求是一個JSON,你問一個問題?你可以請編輯上面的問題..因爲這裏的東西與你的評論有所不同...... – tasmaniski