手工删除了一个模型,php工匠迁移给出了错误


Deleted a model manually, php artisan migrate gives and error

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

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

我尝试了composer dump-autoloadphp artisan migrate:refreshphp artisan migrate:reset,但它一直给出上述错误。我只是想重新开始。如何重置一切?

好的。所以我找到了解决办法。因此,如果您在没有使用php artisan migrate:rollback的情况下意外删除了任何模型文件或迁移文件,那么上述命令和任何迁移命令都将导致问题。所以你需要做的是,从数据库中手动删除所有的表。我使用sqlite数据库,我删除了迁移,用户,问题,教师,password_reset所有由迁移命令生成的表。然后我运行composer dumpautoload。然后我再次运行php artisan migrate命令修改文件后,一切都恢复正常。所以基本上删除迁移表解决了这个问题。

当您对迁移进行refresh时,Laravel会查看您的migrations表并使用其中的值来加载迁移文件以进行回滚。

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

首先,通过在项目文件夹中进行完整搜索,检查该类是否仍在某处被引用,然后如果不是,尝试运行:

php artisan clear-compiled