Php Laravel包迁移类找不到同级类
我正在创建一个Laravel包 这是我的文件夹结构:Php Laravel包迁移类找不到同级类,php,laravel,Php,Laravel,我正在创建一个Laravel包 这是我的文件夹结构: - host => (a laravel app to test the package) - WebSite - packages - Company - FirstPackage - database - migrations - src
- host => (a laravel app to test the package)
- WebSite
- packages
- Company
- FirstPackage
- database
- migrations
- src
- Models
- Http
- Controllers
在migrations
文件夹中,我有两个迁移类:
2021-06-04-create-customers-table
2021-06-04-add-name-to-customers
在createCustomerTable
类I中有一个名为TABLE\u NAME
的常量
在AddNameToCustomers
类中,我想重用那个常量,我只是像CreateCustomersTable::TABLE\u NAME
一样使用它
我的IDE是VS代码,它没有抱怨。但是,当我运行php artisan迁移时,会出现以下错误:
未找到类“CreateCustomerTable”
在packages/Company/FirstPackage/database/migrations/2021-06-04-add-name-to-customers.php:行号
基于,我确保类名与文件名匹配,并尝试在composer.json
中映射类:
"autoload": {
"classmap": [
"database/migrations"
],
"psr-4": {
"Company\\FirstPackage\\": "src/"
}
},
但这些价值观对我都不起作用:
数据库/迁移
应用程序/数据库/迁移
Company/FirstPackage/database/migrations
所以我有两个问题
第一:我如何解决这个问题
第二点也是更重要的一点:我应该如何调试未找到的类bug?只要先使用composer dumpautoload
,如果它没有帮助,请执行以下步骤:)
第一种方法:在执行迁移命令时使用标志。
这很不方便,但如果您确实需要,您可以尝试:
php artisan迁移--path=/path/to/your/dir/with/migrations
第二种方法:您可以使用$this->loadMigrationsFrom($path)将迁移所在的路径添加到AppServiceProvider中代码>
如何调试未发现的类bug
- 检查文件名和类名李>
- 检查类所在的路径李>
- 运行
composer dumpautoload
它可以帮助您获得警告消息,如位于./App/directory/To/Class/ClassName.php中的Class-App\Namespace\To\Class\ClassName不符合psr-4自动加载标准。跳过。
李>
- 最后,您可以检查
vendor/composer/autoload.*
文件以查找错误