5

ZF2 ベースのアプリケーションとフロントエンドのバックボーンに問題があります。フロントエントのどこかで私は走ります

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() )
});

Chrome スニファをオンにすると、リクエストの詳細が表示されます。

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}

このリクエストの処理に使用されるコントローラーは、適切なアクションを実行します。

class TripController extends AbstractRestfulController{
  ...
  public function update( $id, $data ){ var_dump( $id, $data );exit(); }
  ...
}

私の問題は、結果として次のように表示されることです。

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) ""
}

ここで、id は適切に解析されていることがわかりますが、すべてのデータは奇妙な配列のキーに分類されます。現在、このキーからデータを取得していますが、これは悪い方法だと思います。コントローラーの解析データを適切にする方法を理解するのを手伝ってくれる人はいますか。

アップデート

解決策は、ZF2 を 2.2 安定バージョンに更新するだけのようです。

4

1 に答える 1

0

質問は解決しました。同じ問題が発生した場合は、ZF2 を 2.2 安定版以降に更新してください。

于 2015-04-22T05:26:38.813 に答える