Почему мне нужно запустить команду «компоновщик-автозагрузка», чтобы миграция работала в laravel

Я создал некоторые классы миграции в своем приложении для создания таблиц, которые мне нужны, но я все время получаю ошибки при выполнении команды:

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" ], } 

Вам необходимо добавить путь к папке миграции в массив classmap. Затем запустите следующие три команды …

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

Это очистит текущие скомпилированные файлы, обновит классы, которые ему нужны, а затем напишет их обратно, чтобы вам не пришлось повторять это снова.

В идеале вы выполняете компоновку dump-autoload -o, для более быстрой загрузки ваших веб-страниц. Единственная причина, по которой он не является дефолтом, заключается в том, что для генерации требуется немного больше времени (но он лишь немного заметен).

Надеюсь, вам удастся это отсортировать, так как это очень раздражает 🙁