laravel 5.4

时间:2017-04-12 11:04:47

标签: laravel

我正在尝试将接口绑定到实现。 我在app \ Contracts \ Services \ LoginServiceContract.php

中创建了一个界面
namespace App\Contracts\Services;

interface LoginServiceContract{

    ...

}

app \ Services \ LoginService.php中的服务

namespace App\Services;

use App\Contracts\Services\LoginServiceContract;

    class LoginService extends Service implements LoginServiceContract{
        ...
    }

LoginService扩展了与LoginService位于同一名称空间的Service类。

我已经在注册方法中将LoginServiceContract绑定到AppServiceProvider.php中的LoginService,如下所示:

public function register()
{

    $this->app->bind( 'App\Contracts\Services\LoginServiceContract', 'App\Services\LoginService' );

}

LoginController.php包含:

namespace App\Http\Controllers\API\V1;

use App\Contracts\Services\LoginServiceContract;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class LoginController extends Controller{

    private $loginService;

    public function __construct( LoginServiceContract $loginService ){

        $this->loginService = $loginService;

    }

    public function index( Request $request ){

        $this->loginService->session( $request );

    }

}

当我向LoginController @ index发出请求时,会发生以下错误:

BindingResolutionException in Container.php line 873:
Target [App\Contracts\Services\LoginServiceContract] is not instantiable while building [App\Http\Controllers\API\V1\LoginController].

我在终端尝试了以下命令:

  • php artisan clear-compiled
  • php artisan cache:clear
  • composer dump-autoload

我在这里遗漏了什么吗?

0 个答案:

没有答案