创建以下文件:
档案: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中添加了这个并运行composer dump-autoload而没有错误。 它有效!
"autoload": {
"classmap": [
"database",
"app/Services/Custom/Auth/AuthService.php"
],
"psr-4": {
"App\\": "app/"
}
},
答案 0 :(得分:1)
您的命名空间与您的目录结构不匹配。如果您的班级位于App\Services\Custom\Auth\AuthService.php
,那么您的名称空间必须为App\Services\Custom\Auth
。如果您确实希望命名空间为App\Custom\Auth
,则您的文件必须为App\Custom\Auth\AuthService.php
。
解决此问题后,请确保在命令行上执行composer dump-autoload
。
答案 1 :(得分:0)
您似乎没有运行composer dump-autoload
或php composer.phar dump-autoload
。
composer.json对于自动加载非常重要!
答案 2 :(得分:0)
Laravel需要一个包含所有php文件的大文件,通常通过调用artisan或composer生成:php artisan dump-autoload / composer dump-autoload
它只是重新生成需要包含在项目中的所有类的列表(autoload_classmap.php)。非常适合在项目中安装新课程。
更多详情:http://developed.be/2014/08/29/composer-dump-autoload-laravel/