Клиент PHP API, PodioItem :: filter () не возвращает все результаты

Я начинаю изучать клиентскую библиотеку PHP и начал с примера «Hello World» на http://podio.github.io/podio-php/. Я базовый сценарий работает и возвращает результат (у меня есть идентификатор / секрет клиента и идентификатор / токен приложения). Когда я повторяю результаты count(PodioItem::filter($app_id));, возвращается только 20 элементов, однако на самом деле в приложении 110 элементов.

У меня вопрос: что я делаю не так? Что я упустил?

Это кажется очень простым примером. Я поискал в Google и StackOverflow и не нашел никого, у кого была бы эта проблема.

Мой сценарий аутентифицирован и возвращает результаты, но не ВСЕ результаты. Я могу получить до 50, используя параметр array ('limit' => xx). В моем приложении 110 элементов.

ТАКЖЕ, если я это сделаю: print_r(PodioItem::filter($appid)); вывод ДЕЙСТВИТЕЛЬНО сообщает '[total] => 110' Но дамп массива составляет всего 20 элементов.

Мой предел памяти php установлен на 512 МБ. А print_r(error_get_last()); пуст (включен отчет об ошибках).


person Coreigh    schedule 02.10.2014    source источник
comment
Спасибо тебе, Андреа. Я не включил это в свой пост, но я попробовал вариант array('limit' => 110));, но он вернул только 50 элементов. Я, должно быть, сделал что-то не так, потому что я попробовал еще раз, основываясь на вашем сообщении, и получил полный набор результатов. Еще раз спасибо.   -  person Coreigh    schedule 06.10.2014


Ответы (1)


PodioItem::filter() по умолчанию возвращает только 20 элементов. Вы можете увидеть полный набор вариантов на https://developers.podio.com/doc/items/filter-items-4496747

Как видите, вам нужно передать параметр limit, чтобы получить больше элементов. Чтобы получить 100 предметов:

$items = PodioItem::filter($app_id, array('limit' => 100));

Таким образом можно получить до 500 предметов. Если вам нужно больше элементов, вы должны использовать несколько запросов и параметр offset, чтобы пропустить элементы, которые у вас уже есть.

Свойство total всегда будет давать вам общее количество элементов в приложении, независимо от того, сколько элементов у вас в настоящее время в вашей локальной коллекции. Аналогичным образом filtered всегда будет отображать общее количество элементов в текущем отфильтрованном представлении, независимо от того, сколько элементов у вас есть в вашей локальной коллекции. Эта информация важна, если вы строите, например, разбивка на страницы.

(В строке кода отсутствовала закрывающая скобка. [Исправлено])

person Andreas Haugstrup Pedersen    schedule 03.10.2014