我试图创建一个存储库并将其自动注入我的某些控制器中。我使用的是Laravel 4.1和PHP 5.3.10
我收到错误消息Class ConsumerRepositoryInterface does not exist
我已经设置了像这样的服务提供商......
use Illuminate\Support\ServiceProvider;
class ConsumerServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind('ConsumerRepositoryInterface', function()
{
return new EloquentConsumerRepository(new Consumer);
});
}
}
我试图像这样将它注入我的控制器。
private $consumer;
public function __construct(ConsumerRepositoryInterface $consumer)
{
$this->consumer = $consumer;
}
我已将服务提供商在config\app.php
中的提供商数组中注册为ConsumerServiceProvider
。我已将app/providers
和app/repositories
分别添加到composer.json
文件的autoload classmap部分,并已运行composer dump-autoload
。{ p>
令人困惑的部分是设置我的控制器,因此工作正常......
private $consumer;
public function __construct()
{
$this->consumer = App::make('ConsumerRepositoryInterface');
}
这告诉我服务提供者和存储库都很好,Laravel由于某种原因无法自动将我的依赖注入控制器。
答案 0 :(得分:0)
答案非常明显。
有人说ConsumerRepositoryInterface
不存在,因为它不存在。一旦我创建了一个实际的接口并设置了EloquentConsumerRepository来实现它,一切都有效。