themoviedb api — PHP TMDb API — Как работать с результатами поиска с помощью обертки php-tmdb API?

Я использую это: https://github.com/php-tmdb/api — PHP-оболочка для TMDb API. Это кажется действительно хорошим, и есть множество примеров для работы. Но я полностью застрял, начав с этого.

Мне нужно запустить поиск по API и разобрать результат. Просто верно? Но я не могу найти какие-либо методы или средства для работы с возвращенным объектом поиска.

Оболочка API предоставляет два способа использования API, предпочтительным способом является использование API модели.

Вот что я получил (основываясь на приведенных примерах):

$token  = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);

$search = new \Tmdb\Repository\SearchRepository($client);
$query = new \Tmdb\Model\Search\SearchQuery\TvSearchQuery();
$query->page($page);print_r($search->searchTv('breaking bad', $query));

Это отлично работает, и я получаю результат. Однако результатом является объект, и все его свойства либо защищены, либо являются частными. Поэтому я понятия не имею, как получить доступ к результату и работать с ним. Вот пример результата:

Tmdb\Model\Collection\ResultCollection Object
(
[page:Tmdb\Model\Collection\ResultCollection:private] => 1
[totalPages:Tmdb\Model\Collection\ResultCollection:private] => 1
[totalResults:Tmdb\Model\Collection\ResultCollection:private] => 1
[data:protected] => Array
(
[0000000078e3674f0000000033ed0f6b] => Tmdb\Model\Tv Object
(
[backdropPath:Tmdb\Model\Tv:private] => /bzoZjhbpriBT2N5kwgK0weUfVOX.jpg
[createdBy:Tmdb\Model\Tv:private] =>
[contentRatings:Tmdb\Model\Tv:private] => Tmdb\Model\Common\GenericCollection Object
(
[data:protected] => Array
(
)

)

[episodeRunTime:Tmdb\Model\Tv:private] =>
[firstAirDate:Tmdb\Model\Tv:private] => DateTime Object
(
[date] => 2008-01-19 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)

[genres:Tmdb\Model\Tv:private] => Tmdb\Model\Collection\Genres Object
(
[data:protected] => Array
(
[0] => Tmdb\Model\Genre Object
(
[id:Tmdb\Model\Genre:private] => 18
[name:Tmdb\Model\Genre:private] =>
)

)

)

[homepage:Tmdb\Model\Tv:private] =>
[id:Tmdb\Model\Tv:private] => 1396
[inProduction:Tmdb\Model\Tv:private] =>
[languages:Tmdb\Model\Tv:private] =>
[lastAirDate:Tmdb\Model\Tv:private] =>
[name:Tmdb\Model\Tv:private] => Breaking Bad

Я ничего не вижу в документации и уже несколько часов не могу быстро добраться.

Что мне здесь не хватает?

0

Решение

Возможно, вы забыли, что имеете дело с коллекцией элементов, а не с одним результатом, возвращаемым из вашего запроса.

Тем не менее, следующий отредактированный пример должен привести вас к остальным 🙂

$token  = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);

$token  = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);

$search = new \Tmdb\Repository\SearchRepository($client);
$query = new \Tmdb\Model\Search\SearchQuery\TvSearchQuery();
$query->page(1);foreach($search->searchTv('breaking bad', $query) as $tvShow)
{
var_dump($tvShow->getId());
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]