我正在向Microsoft Azure部署Laravel准系统项目,但每当我尝试执行 php artisan migrate
时,我都会收到错误消息:
[2015-06-13 14:34:05] production.ERROR:异常'Symfony \ Component \ Debug \ Exception \ FatalErrorException',在D:\ home \ site \ vendor \ laravel \中找不到消息'Class''框架的\ src \照亮\数据库\迁移\ Migrator.php:328
堆栈跟踪:
#0 {main}
可能是什么问题呢?非常感谢你
- 编辑 -
Migration Class
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->bigIncrements('id');
$table->string('name', 50);
$table->string('surname', 50);
$table->bigInteger('telephone');
$table->string('email', 50)->unique();
$table->string('username', 50)->unique();
$table->string('password', 50);
$table->boolean('active')->default(FALSE);
$table->string('email_confirmation_code', 6);
$table->enum('notify', ['y', 'n'])->default('y');
$table->rememberToken();
$table->timestamps();
$table->index('username');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
12 回答
将Laravel 5.2 dev项目移至 生产环境 后,我遇到了类似的情况(类未找到错误) . 生产环境 服务器正在寻找类“项目”,但控制器名称是Project.php . 一旦我将文件重命名为project.php,就可以了 .
对我来说,问题是我将迁移命名为2017_12_15_012645_create_modules_problems.php,类名为CreateModulesProblemsTable . 一旦我将_table添加到文件名中,一切正常 .
For PSR-4 Auto Loader Users (composer.json):
将迁移文件夹保留在classmap数组中,不要将其包含在autoload下的psr-4对象中 . 由于迁移主类Migrator不支持命名空间 . 例如;
然后运行:
第一个清除所有编译的文件 .
秒更新
autoload_psr4.php
并几乎清空autoload_classmap.php
.第三个更新
autoload_classmap.php
.从此时起,您将不必再次执行此操作,并且任何新的迁移都将正常运行 .
如果在运行迁移时遇到“未找到类错误”,请尝试运行此命令 .
然后重新发出migrate命令 . 在官方网站上查看更多详细信息(#Running Migrations):http://laravel.com/docs/master/migrations#running-migrations
我曾经有同样的问题 . 显然这是一个常见问题,因为在Laravel的文档中,它甚至暗示:http://laravel.com/docs/master/migrations#running-migrations
基本上你所要做的就是刷新一些作曲家文件 . 简单地运行:
composer dump-autoload
这将刷新作曲家自动加载文件,然后您可以运行正常的迁移,它应该工作!非常好 .
我也遇到了同样的问题 .
我的解决方案是删除迁移文件,并从数据库中的“迁移”表中删除记录 .
在那之后,我跑了
并最终能够重置/回滚迁移 .
只需确保您的迁移文件名与您的类名相同 .
即:
如果文件名是:
xxx_151955_create_post_translations_table.php
然后上课应该是:
CreatePostTranslationsTable
我删除了一个迁移文件 . 遇到同样的问题,而
php artisan migrate:rollback
然后我试了
composer dump-autoload
. 同样出现了 .我恢复了已删除的文件并尝试了
composer dump-autoload
和php artisan migrate:rollback
. 有用 .尝试迁移我的项目时,我收到了同一个类未找到错误 . 有时它会让你感到简单 . 在我的情况下,我注意到我的类名在我的迁移文件中不正确,因为我在早期进行了重命名更改并且没有在整个过程中进行更改 .
在更正了类名后,我执行了一个composer dump-autoload,我的问题就消失了 .
HTH某人:]
我愚蠢地说:
我的迁移内容create_users_table.php [2014_10_12_000000_create_users_table.php]
我收到了类似的错误 - 找不到类'CreateUsersTable' .
在顶部删除此行可解决此错误 .
我认为回答这个问题已经很晚了,但也许这对某些人有帮助 .
如果您更改了迁移文件名,请确保其内部类名 .
例如,如果我将迁移名称从
2018_06_10_079999_create_admins_table.php
更改为2018_06_10_079999_create_managers_table.php
,那么其内部类名称也必须从CreateAdminsTable
更改为CreateManagerTable
.simply delete the row at your database on table migrations 这将解决问题 . 进行迁移时,它将不再显示
另一种方法是简单地创建它取决于你想要的文件,在我的情况下我想摆脱这种迁移 . :)