6
I’ve had the following problem for a few days: I’m 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’s 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 the datagrid Easyui can only load if the data
have been 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 object but I’m not able to handle it in Javascript to change it after receiving or in php cake before sending. Somebody got some advice there?
The datagrid 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'}
]]
});
});