Laravel:创建了一个服务,但找不到类


Laravel: Created a service but class is not found

创建了以下文件:

文件: App'Services'Custom'Auth'AuthService.php

命名空间:App'Services'Custom'Auth

类名:AuthCustom

里面的方法:foo()

在我的控制器中,我尝试从我创建的服务调用 foo 方法。 App'Services'Custom'Auth'AuthService'AuthCustom::foo()

为什么它总是返回Class 'App'Services'Custom'Auth'Authservice'AuthCustom' not found

我做错了什么?

谢谢!!

编辑:我在 composer.json 中添加了这个并运行作曲家转储自动加载而没有错误。它有效!

"autoload": {
    "classmap": [
        "database",
        "app/Services/Custom/Auth/AuthService.php"
    ],
    "psr-4": {
        "App''": "app/"
    }
},

您的命名空间与您的目录结构不匹配。如果你的类在 App'Services'Custom'Auth'AuthService.php 中,那么你的命名空间需要App'Services'Custom'Auth。如果你真的希望你的命名空间是App'Custom'Auth,那么你的文件需要App'Custom'Auth'AuthService.php

修复此问题后,请确保在命令行上执行composer dump-autoload

看来你没有跑composer dump-autoloadphp composer.phar dump-autoload.

composer.json 对于自动加载非常重要!

> Laravel需要一个大文件,其中包含所需的所有php文件,通常通过调用Artisan或Composer生成: PHP Artisan dump-autoload/composer dump-autoload

它只是重新生成需要包含在项目中的所有类的列表 (autoload_classmap.php)。非常适合项目中有新类的情况。

更多详细信息: http://developed.be/2014/08/29/composer-dump-autoload-laravel/