迁移时未找到 Laravel 致命错误类

2022-08-30 18:38:56
  1. 我跑了.artisan migrate:reset

  2. 我删除了一些迁移文件,因为我不再需要这些表了。

  3. 我跑了,跟着composer dump-autoloadartisan dump-autoload

  4. 我跑了,我一直得到这个错误:artisan migrate

    PHP 致命错误:在第 297 行的 /vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator 中找不到类 'Foo'.php

我试图:

  • 再次运行和(也使用)composer dump-autoloadartisan dump-autoloadartisan clear-compiled)

  • 删除迁移表并运行artisan migrate:install

  • 删除供应商和 composer.lock 文件并运行composer install

  • 在我的项目中使用PHPStorm搜索Foo类。没有找到任何东西。

    我不断得到同样的错误。这是我自更新到4.2以来第一次运行它,如果可以关联的话。还有什么我应该找的吗?


答案 1

我也有这个问题。必须记住:类名必须与文件名一致。简单的文件重命名帮助了我:)

例如:在文件中,“2014_12_08_100923_create_items_tables.php”必须是名称为“CreateItemsTables”的类,并使用CamelCase单词。


答案 2

我通过以下方式解决了我的问题

  1. 删除所有迁移
  2. 运行composer dump-autoload
  3. 将它们逐个添加回去并运行php artisan migrate
  4. 删除导致Laravel抛出错误的那些
  5. 创建新迁移以替换已删除的迁移

我不确定为什么这样,但我的猜测是,我过去可能已经修改了这些有问题的迁移的类名。

我还发现,使用其初始名称重命名迁移(与致命错误一起抛出的名称)也适用于其中一些。


推荐