我创建了一个界面,我试图将其注入到Controller中。但是我收到了以下错误:
传递给backend \ controllers \ AgencyController :: __ construct()的参数1必须实现接口common \ service \ AppServiceInterface,给定字符串
我在公共文件夹中创建了服务文件夹,在其中添加了两个文件
现在我在common/bootstrap.php
文件中定义了这个依赖项,如下所示:
Yii::$container->set('common\service\AppServiceInterface',
'common\service\AppService');
之后我尝试将它注入到AgencyController中,它放在后端/ controllers / AgencyController中,如下所示:
namespace backend\controllers;
use common\service\AppServiceInterface;
public function __construct(AppServiceInterface $appService)
{
$this->appService = $appService;
}
但是我收到了前面提到的错误。
答案 0 :(得分:1)
所以我必须像下面那样更改__construct方法并且工作正常:
public function __construct($id, $module, AppServiceInterface $appService , $config = [])
{
parent::__construct($id, $module);
$this->appService = $appService;
}