手动删除模型,php artisan migrate 给出错误

Deleted a model manually, php artisan migrate gives and error

所以我刚开始玩 Laravel 5.1。我创建了一个名为 "teachers" 的迁移模型。然后我手动删除了 Teachers.php 的模型文件,其中包含教师 class。现在,当我尝试回滚时,出现以下错误:

[Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'CreateTeachersTable' not found

我尝试了 composer dump-autoloadphp artisan migrate:refresh 以及 php artisan migrate:reset 但它一直出现上述错误。我只想重新开始。如何重置一切?

首先,通过在您的项目文件夹中进行全面搜索来检查 class 是否仍然在某处被引用,然后如果没有,请尝试 运行:

php artisan clear-compiled

好的。所以我找到了解决方案。因此,如果您不小心删除了任何模型文件或迁移文件而没有使用 php artisan migrate:rollback 上述命令和任何迁移命令都会导致问题。所以你需要做的是,从数据库中手动删除所有 tables。我正在使用 sqlite 数据库,我删除了迁移、用户、问题、教师、password_resets 所有由 migrate 命令生成的 table。那我运行composer dumpautoload。然后我 运行 php artisan migrate 在对文件进行更改后再次命令,一切都恢复正常。 所以基本上删除迁移 table 解决了这个问题。

当您 refresh 迁移时,Laravel 查看您的 migrations table 并使用其中的值加载迁移文件以回滚。

由于您手动删除了迁移文件,因此它从未从您的 migrations table 中删除。对于给定的迁移文件,您必须手动删除 table 中的行。