backbone.js - PHP ZF2-Controlador relajante Backbone PUT método de análisis incorrecto
zend-framework2 http-put (1)
Tengo un problema con mi aplicación basada en ZF2 y Backbone en la interfaz. En alguna parte en la parte delantera, corro
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() )
});
Enciendo mi sniffer de Chrome y veo los detalles de la solicitud:
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
Y la carga útil de solicitud es:
{"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}
El controlador utilizado para manejar esta solicitud ejecuta la acción adecuada:
class TripController extends AbstractRestfulController{
...
public function update( $id, $data ){ var_dump( $id, $data );exit(); }
...
}
Mi problema es que veo en resultado esto:
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) ""
}
Aquí vemos que id es analizado correctamente, pero todos los datos caen en la clave de una matriz extraña. Ahora estoy recuperando datos de esta clave, pero creo que esta es una mala manera. ¿Alguien podría ayudarme a descubrir cómo hacer que los datos de análisis de los controladores sean apropiados?
ACTUALIZAR
Bueno, parece que la solución es solo actualizar ZF2 a la versión 2.2 estable.
La pregunta está resuelta. Si enfrenta el mismo problema simplemente actualice su ZF2 a 2.2 versión estable o posterior.