artisan migrate:reset
了。 composer dump-autoload
,然后是artisan dump-autoload
我跑artisan migrate
并且我一直收到此错误:
PHP致命错误:第297行/vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php中找不到类'Foo'
我试图:
composer dump-autoload
和artisan dump-autoload
(也使用artisan clear-compiled
)artisan migrate:install
composer install
使用PHPStorm在我的项目中搜索Foo类。没找到任何东西。
我不断收到同样的错误。这是我第一次运行这个,因为我更新到4.2,如果这可能是相关的。还有什么我应该找的吗?
答案 0 :(得分:32)
我也有这个问题。 必须记住:类名必须符合文件名。 简单的文件重命名帮助我:)
例如:在文件“2014_12_08_100923_create_items_tables.php”中必须是名为“CreateItemsTables”的类,并使用CamelCase单词。
答案 1 :(得分:25)
我通过
解决了我的问题composer dump-autoload
php artisan migrate
我不确定为什么会有效,但我的猜测是我可能在过去修改了这些有问题的迁移的类名。
我还发现,使用其初始名称重命名迁移(带有致命错误的迁移)也适用于其中一些。
答案 2 :(得分:12)
我遇到了这个,并且解决方案与上述所有方案不同。它失败的原因是因为在DB的迁移表中仍然提到了文件名。因为没有唯一的列,我无法使用PHPMyAdmin删除它,并且必须执行CLI路由。
以root身份登录您的服务器。 输入以下内容:
mysql -p database_name
(它现在会提示输入您的密码。从现在开始,所有内容都以 mysql> 开头,这意味着您处于Mysql环境中。
select * from migrations;
查找您删除的迁移文件并复制名称。
delete from migrations where migration = '2015_07_21_000119_create_some_table';
应该提到有关1行影响的内容。现在再次输入第一个命令验证它已消失:
select * from migrations;
如果它通过输入
退出了Mysql环境exit;
现在再试一次' php artisan migrate:rollback ',它应该像魅力一样: - )
答案 3 :(得分:4)
有一种更简单的方法。
artisan make:migration
artisan migrate:reset
以回滚artisan migrate:refresh
答案 4 :(得分:3)
我知道这有点过去但实际上还有更好的方法。在终端中运行以下命令并随意删除其中任何一个:
~$ php artisan clear-compiled;php artisan cache:clear;php artisan config:clear;php artisan debugbar:clear;php artisan view:clear;php artisan optimize
要执行常规任务,请创建名为artisan-clear的可执行文件:
#!/bin/bash
php artisan clear-compiled
php artisan cache:clear
php artisan config:clear
php artisan debugbar:clear
php artisan view:clear
php artisan optimize
答案 5 :(得分:2)
实际的解决方案是为您的翻译使用正确的命名。你仍然可能需要做一个
composer dump-autoload
迁移文件必须如下所示
YYYY_MM_DD_000000_create_some_table.php
并且里面的类名必须是
class CreateSomeTable extends Migration{}
答案 6 :(得分:1)
对我来说,解决方案是迁移中的我的类名以小写字母开头。当我将类名更改为大写时,然后运行composer dump-autoload
,它最终为我工作。这是使用Laravel 5.1,它的价值。
答案 7 :(得分:1)
我是这样的: 1.从数据库中删除了来自迁移表的行不存在的迁移 2.运行命令php artisan migrate:refresh
这有助于解决我的问题。
*所有数据都将从数据库表中删除
答案 8 :(得分:1)
版本5.1.3同样的问题解决了我:
输出:No migrations found.
好吧用吧
输出是:
Migrated: 2016_11_24_093015_dt_some_table
Migrated: 2016_12_05_141004_dt_some_table
Migrated: 2016_12_07_110518_dt_some_table
Migrated: 2016_12_08_141807_dt_some_table
Migrated: 2016_12_13_090832_dt_some_table
这个问题解决了
答案 9 :(得分:0)
我遇到了同样的问题。当我点击php artisan migrate:reset
时,我得到了Class 'CreateImagesTable' not found
。并composer dump-autoload
没有帮助。
我的解决方案非常简单:
php artisan make:migration create_images_table --create=images
composer dump-autoload
SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
php artisan migrate:reset
答案 10 :(得分:0)
如果工匠根本不工作并且不管您给出的命令如何都不断向您发送此消息,请从config.php
文件夹中删除bootstrap/cache
文件。
再次运行之后
php artisan config:cache