实现IOC时出现Target [App\Services\ProductServiceInterface] is not instantiable.的错误

我是按照IOC自动解析的做法,实现
绑定一个接口实现
1.jpg


上图是我在ioc.php中写的绑定,而ioc.php在bootstrap\start.php中包含。

然后我在类中这样使用

2.jpg


结果在生成页面的时候报错了:

1.jpg


请问这个问题有什么解决思路吗?
谢谢!

补充类:

2.jpg


补充接口

1.jpg
已邀请:

zhuzhichao

赞同来自: 雨师 FiveSay kkkdd

  1. 首先是ProductServiceInterface是interface,并且ProductServiceImpl已经implements了ProductServiceInterface这个接口。
  2. 其次确保包含App::bind()的ioc.php这个文件在start.php的require $framework.'/Illuminate/Foundation/start.php';和return $app;之间。
    如果interface和class有命名空间的话,在App::bind('App\Services\ProductServiceInterface', 'App\Services\ProductServiceImpl')的时候,请加上完整的命名空间。
  3. 最后如果是这个类和这个接口是在单独的文件的话,还需要执行composer dumpautoload来包含这两个文件。

要回复问题请先登录注册