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

时间:2015-10-21 19:18:31

标签: php laravel laravel-5.1 artisan artisan-migrate

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

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

我尝试了composer dump-autoloadphp artisan migrate:refresh以及php artisan migrate:reset,但它继续提供上述错误。我只是想重新开始。如何重置一切?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

php artisan clear-compiled