Ho un problema con la mia applicazione basata su ZF2 e Backbone sul frontend. Da qualche parte in frontent corroPHP ZF2 - Metodo PUT backbone controller PUT errato parsing
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())
});
accendo il mio Chrome sniffer e vedere i dettagli della richiesta:
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
E richiesta carico utile è:
{"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 utilizzato per gestire questa richiesta piste azione appropriata:
class TripController extends AbstractRestfulController{
...
public function update($id, $data){ var_dump($id, $data);exit(); }
...
}
Il mio problema è che vedo in questo risultato:
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) ""
}
Qui vediamo che id analizzato bene, ma tutti i dati cadiamo in chiave di qualche strana array. Ora sto recuperando i dati da questa chiave, ma immagino che questa sia una cattiva via. Qualcuno potrebbe aiutarmi a capire come rendere appropriati i dati di analisi del controller.
UPDATE
Beh, sembra la soluzione è solo per aggiornare ZF2 a 2.2 versione stabile.
Quale versione di zf2 si sta utilizzando (è necessario almeno un minimo di 2.1)? Prova 'protected $ jsonDecodeType = Json :: TYPE_OBJECT;' nella classe TripController. – jgb
@jgb aggiornamento a ZF2.2 stabile aiutato. – zeliboba
Puoi contrassegnarlo come risolto? – ThaDafinser