Как вернуть JSON в контроллере DooPHP? - PullRequest
1 голос
/ 24 апреля 2011

Я настраиваю систему AJAX и у меня есть контроллер, который мне нужен для возврата данных JSON. В примерах все контроллеры заканчиваются вызовом представления:

    $this->renderc( 'interest', $data );

Я бы хотел вернуть прямой JSON для использования с jQuery, но приведенный ниже код работает не совсем верно:

return json_encode($data);

потому что возвращение идет как заголовок, а не содержимое в Firebug. Heeeelp!

Ответы [ 2 ]

2 голосов
/ 24 апреля 2011

Документация

Иногда полезно добавить расширение в конце URL (отлично подходит для REST API). Если вам нужно сделать это, просто добавьте имя расширения в ваши маршруты:

$route['*']['/simple.rss'] = array('FeedController', 'getRss');
$route['*']['/simple.atom'] = array('FeedController', 'getAtom');

Немного иначе, если вы хотите добавить его к маршруту с параметрами:

$route['*']['/news/list/:id'] = array('FeedController',
                                      'listNews',
                                      'extension'=>'.json'
                                     );

//Or multiple extension names.
$route['*']['/news/list/:id'] = array('FeedController',
                                      'listNews',
                                      'extension'=>array('.json', '.xml')
                                     );

Пользователи могут получить к нему доступ через http://domain/news/list/168.json ИЛИ 168.xml

0 голосов
/ 26 апреля 2011

для вывода данных в формате JSON (с соответствующими заголовками типов контента, конечно). Используйте это в контроллере.$this->toJSON($data, true);

...