Php “我为什么要跑?”;“作曲家转储自动加载”;命令使迁移在laravel中工作?

Php “我为什么要跑?”;“作曲家转储自动加载”;命令使迁移在laravel中工作?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我已经在我的应用程序中构建了一些迁移类来创建我需要的表,但是我不断地遇到错误。我需要运行以下命令: composer转储自动加载 只有这样,它才能像预期的那样再次工作。我是否做错了导致此错误的事情,或者这是迁移的正常行为 以下是我在运行迁移过程时遇到的错误: [Symfony\Component\Debug\Exception\FatalErrorException] Class 'CreateVideoStatusTable' not found 好吧,我想我知道你的问题 基

我已经在我的应用程序中构建了一些迁移类来创建我需要的表,但是我不断地遇到错误。我需要运行以下命令:

composer转储自动加载

只有这样,它才能像预期的那样再次工作。我是否做错了导致此错误的事情,或者这是迁移的正常行为

以下是我在运行迁移过程时遇到的错误:

  [Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'CreateVideoStatusTable' not found  

好吧,我想我知道你的问题

基本上,因为Composer看不到您正在创建的迁移文件,所以您必须运行dump autoload命令,该命令不会下载任何新内容,但会再次查找需要包含的所有类。它只是重新生成需要包含在项目中的所有类的列表(autoload_classmap.php),这就是为什么在运行该命令后迁移工作正常的原因

如何修复它(可能) 您需要向composer.json文件中添加一些额外的信息

"autoload": {
    "classmap": [
        "PATH TO YOUR MIGRATIONS FOLDER"
    ],
}
您需要将迁移文件夹的路径添加到类映射数组中。然后运行以下三个命令

php artisan clear-compiled 
composer dump-autoload
php artisan optimize
这将清除当前编译的文件,更新它所需的类,然后将它们写回,这样就不必再这样做了

理想情况下,您可以执行
composer dump autoload-o
,以更快地加载网页。它不是默认值的唯一原因是,它需要更长的时间生成(但只是稍微值得注意)

希望您能设法解决这个问题,因为它确实很烦人:(

您应该运行:

composer dump-autoload
如果不起作用,你应该:

re-install composer

简短回答:类映射是静态的,而PSR自动加载是动态的


如果不想使用类映射,请改用PSR自动加载。

是否使用phpartisan进行迁移?是的,我正在使用它生成创建表并运行迁移您是否在文件中使用了Illumb\Database\Schema\Blueprint;使用Illumb\Database\migrations\Migration;,并且正在扩展迁移类?是的,使用“使用照明\数据库\架构\蓝图”和“使用照明\数据库\迁移\迁移”"。通常,当我创建迁移文件时,它们看起来与此类似。请看一看,您的迁移文件是否遵循类似的模式,如果不是,则需要确保您正在扩展迁移类。一切正常吗?我不明白laravel为什么不处理此问题,这是一个伟大的框架。我已经有了我的composer.json文件:“autoload”:{“classmap”:[“database”],“psr-4”:{“App\\”:“App/”},如何添加路径?运行“php artisan dump autoload”时出错:[InvalidArgumentException]命令“dump autoload”未定义。抱歉,您需要使用composer,而不是php artisan。因此其composer转储自动加载