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