php - 为什么注册服务在 Laravel 中不起作用?

标签 php laravel laravel-5

我在app/services/SubscriptionService.php中创建了服务

然后将其导入到 Controller 中 使用App\Services\SubscriptionService;

然后在 Controller 中

public function subscribeIt(SubscriptionService $SubscriptionService, Request $request){
  $response = $SubscriptionService->subscribeIt($request);
  ...
}

但是在执行结果中我得到Class App\Services\SubscriptionService does not exit 我需要在提供者中注册吗? 这是在提供者中

public function register()
    {
        //
        $this->app->bind('App\Services\SubscriptionService', function ($app)    {
          return new SubscriptionService();
        });
    }

最佳答案

看起来您在 app/services/SubscriptionService.php 中创建了该服务。

由于 Laravel 通过 Composer 使用 PSR-4 自动加载,因此它期望 services 目录大写。

重命名该文件夹以包含大写的 S,因此它应该从 app/services/SubscriptionService.php 更改为 app/Services/SubscriptionService.php.

关于php - 为什么注册服务在 Laravel 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770449/

相关文章:

php - 为什么我需要使用流行的框架?

php - 如何使用 Laravel/PHP 和 MySQL 高效地将数组插入为嵌套集模型

php - Laravel 5 中如何获取一篇文章的 user_id ?

laravel - 多个 id 的 UpdateExistingPivot

php - 如何从禁用字段中获取值以插入?

javascript - JQuery UI 全尺寸日历 - 从 PHP 获取 JSON 数据

php - 适用于 PHP 的 Azure : "ServiceDefinition.rd" does not exist in Service directory "ServiceDefinition.csx"

php - Laravel 中具有多对多关系的工厂种子数据透视表

php - Laravel varbinary(ip) 在不工作的地方使用

php - L5 随机 TokenMismatchExceptions