这可能以前已经回答过好几次了。我正试图通过拉拉威尔的作曲家来运行自动加载器。
运行composer dump-autoload
时出现此错误
Class AppAdmin located in C:/xampp/htdocs/test/appModelsAdmin.php does not comply with psr-4 autoloading standard. Skipping.
我已经检查了文件系统中的资本化,看起来还可以。
Composer版本是2.0.14,这是最新的版本。
Composer.json--
"autoload": {
"psr-4": {
"App\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
文件夹结构为:
<root_project>
app
Models
Admin.php
.....
config
public
...
app/Models/Admin.php
:
namespace App;
use ....
use ....
class Admin extends Authenticatable implements HasMedia
{
......
请提供任何帮助,我们将不胜感激。
您的模型中的名称空间是错误的,您缺少Model
的子名称空间,而只有供应商名称空间,在Laravel框架中,该名称空间设置为App
,指向app
文件夹作为其基础。
更改Admin
模型名称空间以包含子名称空间将解决您的问题。
namespace AppModels;
class Admin {}
这是因为PSR-4在文件路径之外工作,子命名空间是要到达目的类的目录,并且这些目录必须与子命名空间的情况相匹配。类名也是如此,例如,文件必须与类的文件相匹配。
IF您的基本目录是/src
,链接到供应商命名空间Mitra,则/src
根文件夹中的类将仅具有命名空间Mitra
如果您在根目录中有一个文件夹;/src/Models
然后命名空间将为MitraModels
。
PSR-4的规范是一个相当简短的规范,并且有很好的文档记录,如果您有理解困难,我建议您阅读它。