Я создаю CMS для моего клиента, чтобы работать со своими фотографиями и продавать их на своем сайте. Для конца CMS и переднего конца, на котором оба будут все AJAX, было бы неплохо получить настройку канала JSON, чтобы я мог использовать один и тот же канал для создания новых «страниц» и «представлений» с помощью JS ,
Таким образом, этот примерный канал был бы похож на {[name: 'A Photo', описание: 'lorem ipsum …'], […]}, а затем с jQuery или JS я могу создать таблицу всех его фотографий, страниц и т. д. Как я могу настроить это для себя?
Должен ли я просто создать файл PHP, который получает все данные из MongoDB, помещает их в массив, чем преобразовать массив в JSON?
$cursor = $this->collection->find($params); $return = array(); $i=0; while( $cursor->hasNext() ) { $return[$i] = $cursor->getNext(); // key() function returns the records '_id' $return[$i++]['_id'] = $cursor->key(); } return json_encode($return);
Вот как я возвращаю JSON из Монго.
Я сделал это так:
$cursor = $collection->find($params); if($cursor->hasNext()) { return json_encode(iterator_to_array($cursor)); }
Если вам нужны _ids, проверьте этот ответ, чтобы узнать, почему вы их не получаете: MongoDB PHP: Как мне получить ObjectId с помощью JSON-канала? (это пусто)
Вот что я делаю :
$data = json_decode(json_encode(iterator_to_array($cursor, true)));
таким образом, я уверен, что у меня есть массив объектов, которые вы можете правильно вызвать:
foreach($data as $doc){ echo 'title:'.$doc->title.'<br>'; }