2013-05-13 6 views
5

フロントエンドで私のZF2ベースのアプリケーションとバックボーンに問題があります。どこかfrontentで私はクロームスニファをオンにし、リクエストの詳細を参照してくださいPHP ZF2 - 安定したコントローラバックボーンPUTメソッドの構文解析が正しくない

this.model.save({ 
    city_id: parseInt(this.$el.find('#city_id').val()), 
    from: this.$el.find('#from').val(), 
    to: this.$el.find('#to').val(), 
    price: parseInt(this.$el.find('#price').val()) 
}); 

を実行します。

PUT /account/trip/2 HTTP/1.1 
Host: jamydays.ru 
Connection: keep-alive 
Content-Length: 186 
Accept: application/json, text/javascript, */*; q=0.01 
Origin: http://jamydays.ru 
X-Requested-With: XMLHttpRequest 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 
Content-Type: application/json 
Referer: http://jamydays.ru/account 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Cookie: PHPSESSID=pekjbefmi1jn01q5fgm4gu6jk0; _ym_visorc=w 

と要求ペイロードは次のとおりです。

{"from_formatted":"10 маÑ","to_formatted":"19 маÑ","url":"/account/trip","id":2,"city_id":65170,"city":"Baardheere","from":"10-05-2013","to":"19-05-2013","price":500,"is_active":1} 

Conrollerがこの要求の実行を処理するために使用しました適切な措置:

class TripController extends AbstractRestfulController{ 
    ... 
    public function update($id, $data){ var_dump($id, $data);exit(); } 
    ... 
} 
ここでは、idが良い解析されていることがわかりますが、すべてのデータは、いくつかの奇妙な配列のキーに陥る

string(1) "2" 
array(1) { 
    ["{"from_formatted":"10_мая","to_formatted":"19_мая","url":"/account/trip","id":2,"city_id":65170,"city":"Baardheere","from":"10-05-2013","to":"19-05-2013","price":500,"is_active":1}"]=> 
    string(0) "" 
} 

私のトラブルは、私はこの結果に見ていることです。今私はこのキーからデータを取得していますが、これは悪い方法だと思います。誰も私がコントローラの解析データを適切にする方法を理解するのを手伝ってもらえますか?

UPDATE

まあ解決策がちょうど2.2の安定版にZF2を更新することであるようです。

+1

あなたが使用しているzf2のバージョン(Afaikは少なくとも2.1必要です)? TripControllerクラスの 'protected $ jsonDecodeType = Json :: TYPE_OBJECT;'を試してください。 – jgb

+1

@jgbが安定してZF2.2に更新されました。 – zeliboba

+1

あなたはそれを解決済みとマークできますか? – ThaDafinser

答えて

0

質問が解決しました。あなたが同じ問題に直面した場合は、ZF2を2.2安定版以降にアップデートしてください。

+0

@bummi私はそれをやった – zeliboba

+0

ありがとう、ちょっと質問に少し編集? – bummi

関連する問題