首页 文章

Laravel迁移:类“未找到”

提问于
浏览
47

我正在向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 回答

  • 5

    将Laravel 5.2 dev项目移至 生产环境 后,我遇到了类似的情况(类未找到错误) . 生产环境 服务器正在寻找类“项目”,但控制器名称是Project.php . 一旦我将文件重命名为project.php,就可以了 .

  • 35

    对我来说,问题是我将迁移命名为2017_12_15_012645_create_modules_problems.php,类名为CreateModulesProblemsTable . 一旦我将_table添加到文件名中,一切正常 .

  • 0

    For PSR-4 Auto Loader Users (composer.json):

    将迁移文件夹保留在classmap数组中,不要将其包含在autoload下的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 .

    从此时起,您将不必再次执行此操作,并且任何新的迁移都将正常运行 .

  • 86

    如果在运行迁移时遇到“未找到类错误”,请尝试运行此命令 .

    composer dump-autoload
    

    然后重新发出migrate命令 . 在官方网站上查看更多详细信息(#Running Migrations):http://laravel.com/docs/master/migrations#running-migrations

  • 8

    我曾经有同样的问题 . 显然这是一个常见问题,因为在Laravel的文档中,它甚至暗示:http://laravel.com/docs/master/migrations#running-migrations

    基本上你所要做的就是刷新一些作曲家文件 . 简单地运行:

    composer dump-autoload

    这将刷新作曲家自动加载文件,然后您可以运行正常的迁移,它应该工作!非常好 .

  • 11

    我也遇到了同样的问题 .

    我的解决方案是删除迁移文件,并从数据库中的“迁移”表中删除记录 .

    在那之后,我跑了

    composer dump-autoload

    并最终能够重置/回滚迁移 .

  • 1

    只需确保您的迁移文件名与您的类名相同 .

    即:

    如果文件名是:

    xxx_151955_create_post_translations_table.php

    然后上课应该是:

    CreatePostTranslationsTable

  • 2

    我删除了一个迁移文件 . 遇到同样的问题,而 php artisan migrate:rollback

    然后我试了 composer dump-autoload . 同样出现了 .

    我恢复了已删除的文件并尝试了 composer dump-autoloadphp artisan migrate:rollback . 有用 .

  • 3

    尝试迁移我的项目时,我收到了同一个类未找到错误 . 有时它会让你感到简单 . 在我的情况下,我注意到我的类名在我的迁移文件中不正确,因为我在早期进行了重命名更改并且没有在整个过程中进行更改 .

    在更正了类名后,我执行了一个composer dump-autoload,我的问题就消失了 .

    HTH某人:]

  • 8

    我愚蠢地说:

    namespace database\migrations;
    

    我的迁移内容create_users_table.php [2014_10_12_000000_create_users_table.php]

    我收到了类似的错误 - 找不到类'CreateUsersTable' .

    在顶部删除此行可解决此错误 .

  • 3

    我认为回答这个问题已经很晚了,但也许这对某些人有帮助 .

    如果您更改了迁移文件名,请确保其内部类名 .

    例如,如果我将迁移名称从 2018_06_10_079999_create_admins_table.php 更改为 2018_06_10_079999_create_managers_table.php ,那么其内部类名称也必须从 CreateAdminsTable 更改为 CreateManagerTable .

  • 2

    simply delete the row at your database on table migrations 这将解决问题 . 进行迁移时,它将不再显示

    另一种方法是简单地创建它取决于你想要的文件,在我的情况下我想摆脱这种迁移 . :)

相关问题