当前位置: 首页 > 面试题库 >

为什么必须运行“ composer dump-autoload”命令才能使迁移在laravel中工作?

段晨
2023-03-14
问题内容

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

composer dump-autoload

只有这样,它才能再次按预期工作。我做错了什么会产生此错误,或者这是迁移的正常行为?

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

  [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,以更快地加载网页。它不是默认值的唯一原因是,它花费了更长的时间来生成(但仅略微引人注意)。

希望您能设法将其排序,因为确实很烦人:(



 类似资料:
  • 命令命令结果: 问题是我只有users_table,admins_table,volunteers_table,opinions_table和contact_tablelaravel迁移文件夹...他们从哪里来,从哪里迁移... 为什么会产生这个问题基本上我是在laravel应用程序中使用chatify实时聊天软件包所有以上消息收藏夹化身表都是该软件包的一部分,但我已经从laravel应用程序中删

  • 问题内容: 所以我正在通过docker-compose部署django,postgress和nginx容器,但我有一个似乎无法解决的问题。 为了解决我的Django应用程序中的以下错误,我知道我只需要运行Django迁移。 为了尝试运行迁移,我尝试了以下操作: 返回以下内容: 我只能从Django容器中成功迁移,例如: 尽管我已经解决了问题,但是我仍然不明白为什么通过docker-compose

  • 因此,我正在通过docker-comment部署django、post外层空间和nginx容器,我有一个似乎无法解决的问题。 为了解决Django应用程序中的以下错误,我知道我必须运行Django迁移。 在尝试运行迁移时,我尝试了: 返回以下内容: 我只能成功地从Django容器中迁移,例如: 虽然我已经解决了这个问题,但我仍然不明白为什么通过docker-composerun运行迁移实际上并没有

  • 问题内容: 我正在尝试写入,但是,直到我致电,实际上才发送任何数据。即使我设置为false,也仍然不会发送。有人知道为什么吗?API文档中没有任何内容对此进行描述。 URLConnection上的Java API文档:http : //download.oracle.com/javase/6/docs/api/java/net/URLConnection.html Java的关于读取和写入URLC

  • 我买了新的MacBook Pro,我在其中安装了mysql,然后安装sequel Pro来查看表和数据库,但是当我命令时,这个错误指控错误图像 近30个小时来,我一直在忍受这个问题,有人能帮我看一下吗

  • 下面按钮,测试3 那个 disabled 不生效,为什么?但是后面 {{options.isDisabled}} 显示是 false,必须要像 测试4 那样加上 .value 才可以,但是 测试1 没有加 .value 确实正常的,这是为什么?