Не удается запустить раздачу на Laravel

Docker 18.09.2
Mysql 5.7
Laravel 5.7
PHP 7.125

Я новичок в Laravel, и у меня проблема. Когда я использую php artisan db:seed, появляется эта ошибка:

include(/var/www/laravel_app/vendor/composer/../../database/seeds/AdminsTableSeeder.php): не удалось открыть поток: нет такого файла или каталога

at /var/www/laravel_app/vendor/composer/ClassLoader.php:444
    440|  * Prevents access to $this/self from included files.
    441|  */
    442| function includeFile($file)
    443| {
  > 444|     include $file;
    445| }
    446|

Я понятия не имею, почему это происходит. При использовании php artisan migrate ошибки не было.

Я уже пробовал php artisan migrate --seed и php artisan migrate:refresh --seed. Кто-нибудь может мне помочь, пожалуйста!


person pop    schedule 18.03.2019    source источник


Ответы (1)


Вы должны попробовать использовать composer dump-autoload.

Из этого ответ в SO:

По сути, поскольку Composer не может видеть создаваемые вами файлы миграции, вам нужно запустить команду dump-autoload, которая не загружает ничего нового, а ищет все классы, которые необходимо включить снова. Он просто восстанавливает список всех классов, которые необходимо включить в проект (autoload_classmap.php), и именно поэтому ваша миграция работает после запуска этой команды.

person null    schedule 18.03.2019
comment
Спасибо за ответ. Я пробовал composer dump-autoload, но появляется ошибка. bash: composer: command not found Думаю, это потому, что я создаю проект Laravel на докере. Есть ли способ использовать команду композитора в докере? - person pop; 19.03.2019
comment
эй, @pop, я видел, что ты отметил мой ответ как принятый, и хотел бы знать, что изменилось с того момента, когда ты в последний раз пытался запустить команду. Было бы здорово оставить комментарий, чтобы помочь будущим читателям - person null; 22.03.2019
comment
Я думал, что мне нужно запустить composer dump-autoload в моем док-контейнере, но это было неправильно. Я просто попытался использовать команду в своей локальной среде, и она сработала. А еще у меня, похоже, есть другое решение: я устанавливаю composer в свой докер-контейнер. - person pop; 25.03.2019