Wis*_*tar 19 php database-migration laravel-4
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:installcomposer install使用PHPStorm在我的项目中搜索Foo类.没找到任何东西.
我一直得到同样的错误.这是我第一次运行这个,因为我更新到4.2,如果这可能是相关的.还有什么我应该找的吗?
Jul*_*jan 33
我也有这个问题.必须记住:类名必须符合文件名.简单的文件重命名帮助我:)
例如:在文件"2014_12_08_100923_create_items_tables.php"中必须是使用CamelCase单词的名称为"CreateItemsTables"的类.
Wis*_*tar 25
我解决了我的问题
composer dump-autoloadphp artisan migrate我不确定为什么会有效,但我的猜测是我可能在过去修改了这些有问题的迁移的类名.
我还发现,使用其初始名称重命名迁移(带有致命错误的那个)也适用于其中一些.
小智 12
我遇到了这个,并且解决方案与上述所有方案不同.它失败的原因是因为在DB的迁移表中仍然提到了文件名.因为没有唯一的列,我无法使用PHPMyAdmin删除它,并且必须执行CLI路由.
以root用户身份登录服务器.输入以下内容:
mysql -p database_name
Run Code Online (Sandbox Code Playgroud)
(它现在提示输入你的密码.从现在开始,所有内容都以mysql开头>这意味着你在Mysql环境中.
select * from migrations;
Run Code Online (Sandbox Code Playgroud)
查找您删除的迁移文件并复制名称.
delete from migrations where migration = '2015_07_21_000119_create_some_table';
Run Code Online (Sandbox Code Playgroud)
它应该提到一行受影响.现在再次输入第一个命令验证它已消失:
select * from migrations;
Run Code Online (Sandbox Code Playgroud)
如果它通过键入退出Mysql环境
exit;
Run Code Online (Sandbox Code Playgroud)
现在再试一次' php artisan migrate:rollback '它应该像魅力一样工作:-)
实际的解决方案是为您的翻译使用正确的命名。你可能还需要做一个
composer dump-autoload
迁移文件必须如下
YYYY_MM_DD_000000_create_some_table.php
,里面的类名必须是
class CreateSomeTable extends Migration{}