CakePHP и jqGrid - PullRequest
       4

CakePHP и jqGrid

1 голос
/ 01 декабря 2010

Я использую 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"
}

Ответы [ 3 ]

1 голос
/ 02 декабря 2010

Как некоторые заметят, у меня есть ассоциативный массив для ячеек.В итоге я сделал следующее, чтобы заставить его работать:

В моем PHP я изменил массив на один уровень выше:

for ($i = 0; $i < count($result); $i++) {
    $data[$i] = $result[$i]["Contact"];
}

В моем JavaScript я изменил одно из значений по умолчаниюдля JsonReader:

...
    jsonReader: {
       repeatitems: false
    },
...
0 голосов
/ 21 мая 2012

Я думаю, вы хотите отформатировать массив JSON следующим образом Форматирование массива JSON

посмотреть всю цепочку, чтобы увидеть решение ..

надеюсь, это поможет!

0 голосов
/ 01 декабря 2010

проверить Интеграция Cakephp и JqGrid сделано с Cakephp 1.1. но это может быть просто конвертировать в Cakephp 1.2. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...