Php 昂首阔步+;路由错误

Php 昂首阔步+;路由错误,php,api,routes,swagger,slim,Php,Api,Routes,Swagger,Slim,我正在用Slimphp创建一个Api。我已经用Swagger.io生成了doc和Client+Server文件。现在我尝试使用一些路由,它给了我一个错误 可捕获的致命错误:传递给App\v1\Api\ContactApi::\uu construct()的参数1必须是App\v1\lib\ApiClient的实例,给定的Slim\Container的实例,在第64行的C:\xampp\htdocs\digitalmake\vendor\Slim\Slim\CallableResolver.php

我正在用Slimphp创建一个Api。我已经用Swagger.io生成了doc和Client+Server文件。现在我尝试使用一些路由,它给了我一个错误

可捕获的致命错误:传递给App\v1\Api\ContactApi::\uu construct()的参数1必须是App\v1\lib\ApiClient的实例,给定的Slim\Container的实例,在第64行的C:\xampp\htdocs\digitalmake\vendor\Slim\Slim\CallableResolver.php中调用,在第55行的C:\xampp\htdocs\digitalmake\App\Api\ContactApi.php中定义

使用的路线:

$this->GET(“”,App\v1\Api\ContactApi::class.”:getContactAsList')

链接到类 -ApiClient: -ContactApi:


有人知道我做错了什么吗?

您需要向实现
ContactApi的容器注册一个工厂

大概是这样的:

$container = $app->getContainer();
$container[App\v1\Api\ContactApi::class] = function ($c) {
    $apiClient = new App\v1\lib\ApiClient();
    return new App\v1\Api\ContactApi($apiClient);
}

然后,Slim将使用此工厂在路由之前实例化
ContactApi
对象。

您需要向实现
ContactApi的容器注册工厂

大概是这样的:

$container = $app->getContainer();
$container[App\v1\Api\ContactApi::class] = function ($c) {
    $apiClient = new App\v1\lib\ApiClient();
    return new App\v1\Api\ContactApi($apiClient);
}
然后,Slim将使用此工厂在路由之前实例化
ContactApi
对象。

伙计,我爱你,伙计,我爱你