Ich habe ein Problem mit meinem ZF2 basierten Anwendung und Backbone am Frontend. Irgendwo im Frontend Ich betreibePHP ZF2 - Erholsamer Controller Backbone PUT-Methode falsche Analyse
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())
});
Ich schalte mein Chrome Sniffer und sehen Sie die Anfrage Details:
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
Und Anfrage Nutzlast:
{"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 verwendet diese Anforderung läuft zu handhaben geeignete Maßnahmen:
class TripController extends AbstractRestfulController{
...
public function update($id, $data){ var_dump($id, $data);exit(); }
...
}
Mein Problem ist, dass ich in Folge sehen:
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) ""
}
Hier sehen wir, dass id analysiert gut, aber alle Daten fallen in Schlüssel von einem seltsamen Array. Jetzt bin ich das Abrufen von Daten aus diesem Schlüssel, aber denk, das schlecht ist. Könnte mir jemand helfen, herauszufinden, wie man Controller-Daten richtig parsen lässt?
UPDATE
Nun scheint es, die Lösung nur ZF2 bis 2,2 stabile Version zu aktualisieren ist.
Welche Version von zf2 verwenden Sie (Afaik mindestens 2.1 erforderlich)? Versuchen Sie 'protected $ jsonDecodeType = Json :: TYPE_OBJECT;' in der Klasse TripController. – jgb
@jgb Aktualisierung auf ZF2.2 stabil geholfen. – zeliboba
Können Sie es markieren, wie gelöst? – ThaDafinser