Laravel迁移:类“未find”
我正在向Microsoft Azure部署一个Laravel准系统项目,但每当我尝试执行php artisan migrate
,都会收到错误消息:
[2015-06-13 14:34:05] production.ERROR:在D:\ home \ site \ vendor \ laravel \ framework中找不到'Class'消息的exception'Symfony \ Component \ Debug \ Exception \ FatalErrorException' \ SRC \照亮\数据库\迁移\ Migrator.php:328
堆栈跟踪:
#0 {main}
可能是什么问题呢? 非常感谢你
– 编辑 –
迁移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'); } }
对于PSR-4自动加载程序用户(composer.json):
保留classmap数组内的migrations文件夹,不要将其包含在自动加载的psr-4对象中。 由于迁移主类Migrator不支持命名空间。 例如;
"autoload": { "classmap": [ "app/database/migrations" ], "psr-4": { "Acme\\controllers\\": "app/controllers" } }
然后运行:
php artisan clear-compiled composer dump-autoload php artisan optimize
- 首先清除所有编译的文件。
- 其次更新
autoload_psr4.php
,几乎清空autoload_classmap.php
。 - 第三个更新
autoload_classmap.php
。
从此时起,您不必再次执行此操作,任何新的迁移都将正常运行。
如果运行迁移时出现“未find类错误”,请尝试运行此命令。
composer dump-autoload
然后重新发出migrate命令。 在官方网站(#Running Migrations)中查看更多详情: http ://laravel.com/docs/master/migrations#running-migrations
我有一回同样的问题。 显然这是一个常见的问题,因为在Laravel的文档中,它甚至build议: http ://laravel.com/docs/master/migrations#running-migrations
基本上你所要做的就是刷新一些作曲文件。 只需运行:
composer dump-autoload
这将刷新composer phpautoload文件,然后你可以运行你的正常迁移,它应该工作! 非常好。
我也跑在同样的问题。
对我来说,解决scheme是删除迁移文件,并从数据库的“迁移”表中删除logging。
之后,我跑了
composer php转储自动加载
并最终能够重置/回滚迁移。
我删除了一个迁移文件。 面临同样的问题,而php artisan migrate:rollback
然后我尝试了composer dump-autoload
。 同样出现了。
我恢复了删除的文件,并尝试composer dump-autoload
和php artisan migrate:rollback
。 有用。
在将Laravel 5.2开发项目移植到生产环境后,我遇到了类似的情况(类未find错误)。 生产服务器正在寻找类“项目”,但控制器名称是Project.php。 一旦我把这个文件重命名为project.php,那就好了。
当我试图迁移我的项目时,我收到了同样的类未find错误。 有时候,这是简单的事情,让你。 在我的情况下,我注意到我的class级名称在我的迁移文件中是不正确的,因为我很早就做了重命名更改,并没有在整个过程中进行更改。
更正类名后,我执行了一个composer php转储自动加载和我的问题消失了。
HTH某人:]