0

我正在使用这个: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

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

我在这里想念什么?

4

1 回答 1

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());
}
于 2018-01-19T17:20:26.780 回答