我正在创建一个Web应用程序。我是Laravel的新手,并且仍然在学习。无论如何,这是我的问题:
我正在尝试将自定义类包含到我的项目中。我设法加入了一个班级-管理员,并尝试与另一个班级-Profesor进行同样的操作,但是尽管事实是第一个班级运行良好,但另一个班级却没有。
我在应用文件夹Biblioteka子文件夹中创建了名为Administrator和Profesor的文件。
在我放入的每个文件中:
namespace app\Biblioteka;
在composer.json内部,我进行了以下更改:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"app/Biblioteka/Administrator",
"app/Biblioteka/Profesor"
],
"files": ["app/Biblioteka/Administrator.php",
"app/Biblioteka/Profesor.php"]
},
之后,我运行:
php artisan route:clear
php artisan cashe:clear
composer dump-autoload
并收到以下消息:
[RuntimeException]
Could not scan for classes inside "app/Biblioteka/Administrator"
which does not appear to be a file nor a folder
dump-autoload [--no-scripts][-o|--optimize][-a|--classmap-
authoritative][--apcu][--no-dev]
我包括了
use app\Biblioteka\Administrator;
use app\Biblioteka\Profesor;
使用提到的类的文件中。
应用程序适用于Administrator类,但不适用于Profesor类。
首先创建了类管理员。一切正常开始后,我以与管理员相同的方式设置了Profesor类。它在调用该类的构造函数的那一行报告错误。我不知道为什么第二堂课不能正常工作。
感谢任何可以帮助我解决这一问题的人:)
答案 0 :(得分:1)
如果要将自定义类放在classmap
目录中,则无需添加到files
和app
块中。删除这些行,然后在PHP文件中使用App/Biblioteka/Administrator;
。
此位:
"psr-4": {
"App\\": "app/"
},
表示app
目录中的任何内容都可以通过App
命名空间引用。因此,对于app/Foo/Bar.php
,该类被称为App\Foo\Bar
。