我正在尝试将接口绑定到实现。 我在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].
我在终端尝试了以下命令:
我在这里遗漏了什么吗?