我今天是第一次使用laravel服务容器。我知道在互联网上可以找到很多东西,但是我找不到解决方案。我正在尝试将接口(interface)绑定(bind)到类,但是在执行此操作时收到错误消息:



这是我的服务容器,称为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');
    }

}

我试图在我的 Controller 中实例化它:
public function storeTicket(makeTicketRequest $request,UploadService $upload)
{ }

我已经在app.php中注册了Serviceprovider。而且我还做了:
php artisan clear-compiled

最佳答案

在对bind()的调用中,您使用的是App\Contracts\UploadService(大写的“契约(Contract)”),但错误消息指出App\contracts\UploadService(下排的“contracts”)。纠正差异,它应该可以工作。

10-07 15:00