I have a problem with this:
I am using CakePHP and sending JSON to a datagrid of EasyUI as follows:
$rows = $this->Produto->find('all', array('fields' => array(
'id', 'codigo_produto', 'codigo_pedido'
)));
$total = $this->Produto->find('count');
return new CakeResponse(
array('type' => 200,
'body' => json_encode(array('rows' => $rows,
'total' => $total)
)
)
);
But my biggest problem is that it is being sent this way:
{
"rows": [
{
"Produto": {
"id": "28",
"codigo_produto": "01.02.00.0001",
"codigo_pedido": "123521"
}
},
{
"Produto": {
"id": "29",
"codigo_produto": "",
"codigo_pedido": ""
}
},
{
"Produto": {
"id": "30",
"codigo_produto": "03.02.01.0000",
"codigo_pedido": "12351"
}
},
{
"Produto": {
"id": "31",
"codigo_produto": "02.01.00.2541",
"codigo_pedido": "12351"
}
}
],
"total": 4
}
But datagrid EasyUI can only load if data
is like this:
{
"rows": [
{
"id": "28",
"codigo_produto": "01.02.00.0001",
"codigo_pedido": "123521"
},
{
"id": "29",
"codigo_produto": "",
"codigo_pedido": ""
},
{
"id": "30",
"codigo_produto": "03.02.01.0000",
"codigo_pedido": "12351"
},
{
"id": "31",
"codigo_produto": "02.01.00.2541",
"codigo_pedido": "12351"
}
],
"total": 4
}
Cake sends as an object but I'm not able to treat it in Javascript for it to change after receiving neither in the php of the cake before sending. Anyone have any advice there?
The datagrid has no secret:
$(function () {
$('#dg').datagrid({
url: '<?php echo $this->Html->url(array('action' => 'get_data')); ?>',
pagination: true,
columns: [[
{field: 'id', title: 'id', width: 100},
{field: 'codigo_produto', title: 'codigo produto', width: 100},
{field: 'codigo_pedido', title: 'codigo pedido', width: 100, align: 'center'}
]]
});
});