2013-06-05 63 views
1

我在Yii中使用其餘的API。我想使用PUT來實現更新功能,但它不起作用,並且始終返回數據庫中未改變的結果。PUT麻煩休息api

public function actionUpdate(){  
    $json = file_get_contents('php://input'); 
    echo $json; 
    $put_vars = CJSON::decode($json,true); //true means use associative array 
    echo count($put_vars); 
    ... 

上面的代碼是我的功能。我檢測到行$ put_vars = CJSON :: decode($ json,true); ,因爲在提交鍵/值對後$ json不是空的,但解碼後數據變空。

您可以嘗試一些其他的客戶端,看看結果自己: http://www.taxitaxi.kz/dispatcher/index.php/api/test/1

鍵/值:評分/ 8

回聲$ JSON的給出瞭如下回應:

串(232) 「------ WebKitFormBoundarypsSvnRl0DUwJooRP Content-Disposition:form-data; name =」rating「

8 ------ WebKitFormBoundarypsSvnRl0DUwJooRP Content-Disposition:form-data; name =」date「

333 ------ WebKitFormBoundarypsSvnRl0DUwJooRP--

鍵/值對爲:等級/ 8,日期/ 333

是否parceble JSON響應?

+1

對不起,我可能是錯的,但你不能只使用'json_decode'? http://php.net/manual/en/function.json-decode.php –

+0

我從來沒有使用'CJSON :: decode',但爲什麼你不能簡單地使用'json_decode'? – OptimusCrime

+0

答案是否爲JSON?把計數放在後面會打破這一點。 – Musa

回答

0

我有一個活的網站非常相似的代碼,我使用:

parse_str(file_get_contents("php://input"), $_PUT); 

然後$_PUT是您的PUT數據數組就像$ _GET或$ _POST會。然後,你可以做任何你喜歡的事情。