Подтвердить что ты не робот

Почему мне нужно запустить команду "composer dump-autoload", чтобы миграция работала в laravel?

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

composer dump-autoload

Только тогда он снова работает, как и ожидалось. Я делаю что-то неправильно, что вызывает эту ошибку, или это нормальное поведение при миграции?

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

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

Ответ 1

Хорошо, я думаю, что знаю проблему, с которой вы столкнулись.

По сути, поскольку 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 для более быстрой загрузки ваших веб-страниц. Единственная причина, по которой он не используется по умолчанию, заключается в том, что его генерация занимает немного больше времени (но только слегка заметна).

Надеюсь, вам удастся разобраться в этом, так как это действительно очень раздражает :(

Ответ 2

Вы должны запустить:

composer dump-autoload

и если не работает, вы должны:

re-install composer