Я использую CakePHP и jqGrid, но мне трудно заставить их говорить красиво. Я могу решить проблему создания ответа JSON (я знаю, «это не так сложно»;)), но я бы предпочел просто вернуть упрощенную версию результата из find («все» ...).
Вот мой текущий код (выбираются только те поля, которые я хочу). Есть ли быстрый и простой способ красиво отформатировать это для jqGrid?
$result = $this->Contact->find('all', array(
'fields' => array('first_name', 'last_name', 'company', 'title'),
'conditions' => array('OR' => $filters),
'offset' => $skip,
'limit' => $rows
));
Заранее спасибо!
EDIT
Я смог превратить результаты этого в массив, как этого хотел Jquery, но теперь я получаю пустую таблицу (таблица отображается, но все ячейки пусты). Вот мой обновленный код, есть идеи?
$result = $this->Contact->find('all', $options);
$data = array();
for ($i = 0; $i < count($result); $i++) {
$data[$i]['id'] = $result[$i]['Contact']['id'];
$data[$i]['cell'] = $result[$i]["Contact"];
}
$result = array(
'rows' => $data,
'page' => $page,
'total' => ceil($totalPages / $rows),
'records' => $totalPages
);
Вот фрагмент json:
{
"rows":[
{
"id":"2160",
"cell":{
"first_name":"Rory",
"last_name":"Johnson",
"company":"somewhere",
"title":"Director of Engineering",
"id":"2160"
}
},
{
"id":"2297",
"cell":{
"first_name":"Steven",
"last_name":"Johnson",
"company":"Another place",
"title":"Dir Busn Proc Desgn",
"id":"2297"
}
}
],
"page":"1",
"total":"75",
"records":"748"
}