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

时间:2018-01-19 15:22:13

标签: php themoviedb-api

我正在使用它:https://mirror.oparl.org/body/5a3d010888dbe04745b24e0a/meeting - TMDb API的PHP包装器。它似乎非常好,并且有大量的示例可供使用。但我完全陷入困境。

我需要在API上运行搜索并解析结果。简单吧?但我找不到任何方法或手段来处理返回的搜索对象。

API包装器提供了两种使用API​​的方法,首选方法是使用Model 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

我在文档中看不到任何内容,现在几个小时都无法快速获取。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

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

那就是说,以下编辑的例子应该引导你完成其余的事情:)

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