Php Laravel包迁移类找不到同级类

Php Laravel包迁移类找不到同级类,php,laravel,Php,Laravel,我正在创建一个Laravel包 这是我的文件夹结构: - host => (a laravel app to test the package) - WebSite - packages - Company - FirstPackage - database - migrations - src

我正在创建一个Laravel包

这是我的文件夹结构:

- 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.*
    文件以查找错误