Почему я должен запускать команду "composer dump-автозапуск", чтобы заставить миграции работать в laravel?
Я создал несколько классов миграции в своем приложении для создания нужных мне таблиц, но я продолжаю получать ошибки. Мне нужно выполнить эту команду:
composer dump-autoload
Только тогда он снова работает, как и ожидалось. Я делаю что-то не так, что порождает эту ошибку, или это нормальное поведение при миграции?
Ниже приведена ошибка, которую я получаю при запуске процесса миграции:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateVideoStatusTable' not found
2 answers
Хорошо, я думаю, что знаю, в чем ваша проблема.
В принципе, поскольку 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
Это очистит текущие скомпилированные файлы, обновит необходимые классы, а затем запишет их обратно, чтобы вам не пришлось делать это снова.
В идеале вы выполняете composer dump-autoload-o для более быстрой загрузки ваших веб-страниц. Единственная причина, по которой это не по умолчанию, заключается в том, что потому что для генерации требуется немного больше времени (но это лишь слегка заметно).
Надеюсь, вам удастся разобраться с этим, так как это действительно очень раздражает:(
Вы должны запустить:
composer dump-autoload
И если не работает, вы должны:
re-install composer