我在app/services/SubscriptionService.php
中创建了服务
然后将其导入控制器
使用App\Services\SubscriptionService;
然后在控制器中
public function subscribeIt(SubscriptionService $SubscriptionService, Request $request){
$response = $SubscriptionService->subscribeIt($request);
...
}
但是由于执行的结果,我得到了Class App\Services\SubscriptionService does not exist
我需要在提供商中注册吗?
这是在提供商中
public function register()
{
//
$this->app->bind('App\Services\SubscriptionService', function ($app) {
return new SubscriptionService();
});
}
答案 0 :(得分:2)
请记住,PHP名称空间区分大小写。另外,请尽可能使用::class
运算符。
对于代码,请更改
$this->app->bind('App\Services\SubscriptionService', function ($app) {
return new SubscriptionService();
});
对此
$this->app->bind(\App\Services\SubscriptionService::class, function ($app) {
return new SubscriptionService();
});
侧注::如果您不全局导入类,则需要在名称空间前加一个反斜杠。
答案 1 :(得分:2)
您似乎在app/services/SubscriptionService.php
中创建了服务。
由于Laravel正在通过作曲者使用PSR-4自动加载,因此期望services
目录被大写。
重命名文件夹以包括大写字母S
,因此它应该从app/services/SubscriptionService.php
到app/Services/SubscriptionService.php
。