在 Laravel 中,我需要与第 3 方 API 进行通信。Thay 给了我一些 PHP 实现(类),我可以用它来连接他们的 API 并与之通信。但是,当我将它作为 App 文件夹子文件夹中的一个类尝试并将其添加到我的控制器时,我收到一个找不到类的错误。我在 App 文件夹中添加了一个文件夹“Qenner”(API 的提供者)。并在那里复制了他们的课程。在我的控制器中,我正在使用这些类并添加一个代码示例,就像他们将它发送给我一样。控制器代码(API-KEY 替换为实际密钥):namespace App\Http\Controllers;use Illuminate\Http\Request;use App\Qenner\Search;use QennerSearch\ServiceClient;class TestController extends Controller{ public function index() { $search = new Search('https://search.qenner.com', 'API-KEY', true, 'nl-NL');$response = $search->getCriteria([], ['Country'], []);if (!$response->isError()) { $criterionSets = $response->getCriterionSets(); $countryCriterionSet = criterionSets[0]; $countries = $countryCriterionSet->getCriteria(); $resultCount = $response->getResultCount();}dd($response); }Qenner 文件夹中的 Search.php:/** * @file * Contains QennerSearch\Search. */namespace QennerSearch;use QennerSearch\model\messages\CriterionTypesResponse;use QennerSearch\model\messages\CriteriaRequest;use QennerSearch\model\messages\CriteriaResponse;use QennerSearch\model\messages\ErrorResponse;use QennerSearch\model\messages\SearchRequest;use QennerSearch\model\messages\SearchResponse;use QennerSearch\model\messages\PriceRequest;use QennerSearch\model\messages\PriceResponse;use QennerSearch\model\messages\AccommodationInfoRequest;use QennerSearch\model\messages\AccommodationInfoResponse;use QennerSearch\model\messages\AutoCompleteRequest;use QennerSearch\model\messages\AutoCompleteResponse;/** * Class Search, using ServiceClient to communicate, implementing the SearchInterface * * @package QennerSearch */class Search extends ServiceClient implements SearchInterface {.....该文件夹有一个 ServiceClient.php
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
更新
在评论中看到您的文件夹结构后,我相信 ServiceClient.php 和 Search.php 都在文件夹中:app\Qenner
,因此在这些文件中:
无论您在哪里使用: namespace QennerSearch;
你应该使用: namespace App\Qenner;
然后在您的控制器中,而不是使用: use QennerSearch\ServiceClient;
用: namespace App\Qenner\ServiceClient
命名空间不像别名,如果有意义,它们需要反映文件本身的位置。
请试一试,让我知道它是否有效。
- 1 回答
- 0 关注
- 283 浏览
添加回答
举报
0/150
提交
取消