Parametri della griglia KendoUI che inviano a un'app symfony2

Sto usando una griglia KendoUI con serverpaging, sto anche usando symfony2 sul lato server, ho creato il routing per gestire la richiesta:

_callsList: pattern: /callsList/{id_client}/{take}/{skip}/{page}/{pageSize} defaults: { _controller: StoreBundle:Voip:callsList, take: 20, skip: 0, page: 1, pageSize: 20 } 

Questa è la mia definizione della griglia:

 $("#grid").kendoGrid({ dataSource: { type: "json", transport: { read: "{{url('_callsList', {'id_client': 3, 'take': 20, 'skip': 0, 'page': 1, 'pageSize': 20})}}" }, schema: { model: { fields: { callerId: { type: "string" }, calledNumber: { type: "string" }, callStart: { type: "string" }, duration: { type: "string" } } } }, pageSize: 20, serverPaging: true, serverFiltering: true, serverSorting: true, schema: { total : "total", data: "result" } }, height: 430, scrollable: true, sortable: true, pageable: { input: true, numbersc: false }, columns: [ { field: "callerId", title: "Numero de Salida", width: "130px" }, { field: "calledNumber", title: "Numero de Destino", width: "180px" }, { field: "callStart", title: "Fecha", width: "100px" }, { field: "duration", title: "Duracion (segundos)", width: "80px" } ] }); 

La griglia si carica bene, ma quando clicco sulla seconda pagina, l'URL inviato al server è come questo:

http://mydomain.com/app_dev.php/callsList/3/20/0/1/20?take=20&skip=20&page=2&pageSize=20

La griglia non è in grado di get la seconda pagina e continua a tirare i primi 20 risultati. L'URL giusto dovrebbe essere come questo:

http://mydomain.com/app_dev.php/callsList/3/20/20/2/20

Come ho impostato sul file di routing.

Qualche idea su come risolvere questo problema ???

Grazie!

In base a come funziona questa libreria, consiglierei di analizzare queste opzioni nella stessa ControllerAction piuttosto che nei parametri url.

 //routing _callsList: pattern: /callsList/{id_client}/ defaults: { _controller: StoreBundle:Voip:callsList } 

Quindi l'azione del tuo controller

 public function callsListAction(Request $request, Client $client) { $defaults = arrays( "take" => 20, "skip" => 0, "page" => 1, "pageSize" => 20 ); $options = arrays_merge($defaults, $request->query->all()); //This should give you your defaults merged with any passed params in $options // So /callsList?page=2 will give you: // arrays( "take" => 20, // "skip" => 0, // "page" => 2, // "pageSize" => 20 // ) }