PHP TMDb API - 如何使用 php-tmdb API 包装器处理搜索结果?

PHP TMDb API - How work with search results using php-tmdb API wrapper?

我正在使用这个:https://github.com/php-tmdb/api - TMDb API 的 PHP 包装器。看起来真的很好,并且有大量示例可供参考。但我完全无法开始使用它。

我需要 运行 搜索 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

我在文档中看不到任何内容,而且几个小时以来一直毫无进展。

我在这里错过了什么?

您可能忘记了您正在处理一组项目,而不是从查询返回的单个结果。

就是说,下面编辑过的示例应该会指导您完成其余部分:)

$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());
}