Why do I have to run "composer dump-autoload" command to make migrations work in laravel?

I have built some migration classes in my application to create the tables I need, but I keep getting errors. I need to run this command:

composer dump-autoload

Only then it works again as expected. Am I doing something wrong that generates this error or this is a normal behaviour with migrations?

Below is the error that I get when running the migration process:

  [Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateVideoStatusTable' not found
406671 次浏览

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

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

如何(可能地)修理它 您需要向 comper.json 文件添加一些额外的信息。

"autoload": {
"classmap": [
"PATH TO YOUR MIGRATIONS FOLDER"
],
}

您需要将迁移文件夹的路径添加到类映射数组中。

php artisan clear-compiled
composer dump-autoload
php artisan optimize

这将清除当前编译的文件,更新它所需的类,然后将它们写回来,这样您就不必再次执行此操作。

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

希望你能设法把这个分类,因为它确实很烦人: (

You should run:

composer dump-autoload

如果不工作,你应该重新安装作曲家

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

如果你不想使用类图,那就使用 PSR 自动加载。

我的错误是在 config/fortify.php 中放置了一个函数,在我的例子中,是一个匿名函数给出了这个错误。

最终的解决方案是查看我通常在 config/文件夹中修改哪些文件。

在许多地方,他们说从 bootstrap/cache/* 中删除文件,但是在我的例子中没有用,而且它真的没有意义。无论如何,我给你们下命令:

php artisan clear-compiled
composer dump-autoload
php artisan optimize

但是我真的建议您查看已经配置的基本 laravel 配置文件。在这里你会发现错误。