我今天第一次使用laravel服务容器。我知道互联网上有很多东西可以找到,但我无法找到解决方案。我试图将接口绑定到类,但是当我这样做时,我收到错误:
目标[App \ contracts \ UploadService]不可实例化。
这是我的名为UploadServiceContainer的服务容器:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class UploadServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind('App\Contracts\UploadService', 'App\Classes\upload\upload');
}
}
我尝试在我的控制器中实例化它:
public function storeTicket(makeTicketRequest $request,UploadService $upload)
{ }
我已在app.php中注册了我的Serviceprovider。而且我也做了:
php artisan clear-compiled
答案 0 :(得分:2)
在致电bind()
时,您使用的是App\Contracts\UploadService
(大写“合同”),但错误消息指出App\contracts\UploadService
(较低的“合同”)。纠正差异,它应该有效。