Класс смертельной ошибки Laravel не найден при миграции

  1. Я запустил artisan migrate:reset .
  2. Я удалил некоторые из моих файлов миграции, потому что мне больше не нужны эти таблицы.
  3. Я запустил composer dump-autoload а затем artisan dump-autoload
  4. Я запустил artisan migrate и я продолжаю получать эту ошибку:

    PHP Неустранимая ошибка: класс 'Foo' не найден в /vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php в строке 297

Я попытался:

Related of "Класс смертельной ошибки Laravel не найден при миграции"

У меня тоже была эта пробема. Необходимо помнить: имя класса должно соответствовать имени файла. Мне помогло простое переименование файлов 🙂

Например: в файле «2014_12_08_100923_create_items_tables.php» должен быть класс с именем «CreateItemsTables» с использованием слов CamelCase.

Я решил свою проблему

  1. Удаление всей миграции
  2. Запуск composer dump-autoload
  3. Добавление их обратно один за другим и запуск php artisan migrate
  4. Удаление тех, которые вызвали Laravel, чтобы вызвать ошибку
  5. Создайте новые миграции для замены удаленных

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

Я также обнаружил, что переименование миграции с ее начальным именем («Тот, что выбрасывается с фатальной ошибкой») также работает для некоторых из них.

Я столкнулся с этим, и решение было иным, чем все вышеперечисленное. Причина, по которой он терпел неудачу, состояла в том, что имя файла все еще упоминалось в таблице миграции БД. Поскольку не было уникальных столбцов, я не мог удалить его с помощью PHPMyAdmin и должен был выполнять маршрут CLI.

Войдите на свой сервер с правами root. Введите следующее:

 mysql -p database_name 

(теперь он запрашивает ваш пароль. С этого момента все предшествует mysql>, который просто означает, что вы находитесь в среде Mysql.

 select * from migrations; 

Найдите файл миграции, который вы удалили, и скопируйте имя.

 delete from migrations where migration = '2015_07_21_000119_create_some_table'; 

Он должен упомянуть что-то о 1-й строке. Теперь убедитесь, что он ушел, снова набрав первую команду:

 select * from migrations; 

Если он вышел из среды Mysql, набрав

 exit; 

Теперь попробуйте « php artisan migrate: rollback » снова, и он должен работать как шарм 🙂

Есть более простой способ.

  1. Восстановите эти удаления вручную. artisan make:migration
  2. запустить artisan migrate:reset до отката
  3. Удалите только созданные файлы фиктивных миграций.
  4. запустить artisan migrate:refresh

Я знаю, что это немного мимо, но на самом деле есть лучший способ. Запустите следующее в терминале и не стесняйтесь удалить любой из них:

 ~$ php artisan clear-compiled;php artisan cache:clear;php artisan config:clear;php artisan debugbar:clear;php artisan view:clear;php artisan optimize 

Для выполнения обычной задачи создайте исполняемый файл с именем artisan-clear:

 #!/bin/bash php artisan clear-compiled php artisan cache:clear php artisan config:clear php artisan debugbar:clear php artisan view:clear php artisan optimize 

Фактическое решение – использовать правильное название для ваших переводов. Возможно, вам все равно придется

composer dump-autoload

Файлы миграции должны быть следующими: YYYY_MM_DD_000000_create_some_table.php и имя класса внутри должно быть

class CreateSomeTable extends Migration{}

Для меня решение заключалось в том, что мое имя класса внутри миграции каким-то образом начиналось с строчной буквы. Когда я изменил имя класса, чтобы все было в верхнем регистре, затем запустил composer dump-autoload , он закончил работать для меня. Это использует Laravel 5.1, для чего он стоит.

Мне это понравилось: 1. Удаленная строка не существует миграции из таблицы миграции из базы данных 2. И запустите команду php artisan migrate: refresh

Это помогло решить мою проблему.

* все ваши данные будут удалены из таблиц базы данных

версия 5.1.3 та же проблема исправить это я:

  • удалить все таблицы
  • php artisan migrate: статус

output: No migrations found. нормально его использовать

  • php artisan migrate: install
  • Перенос php-artisan

выход:

 Migrated: 2016_11_24_093015_dt_some_table Migrated: 2016_12_05_141004_dt_some_table Migrated: 2016_12_07_110518_dt_some_table Migrated: 2016_12_08_141807_dt_some_table Migrated: 2016_12_13_090832_dt_some_table 

эта проблема решена

У меня такая же проблема. Когда я нажимал php artisan migrate:reset , я не получил Class 'CreateImagesTable' not found . А composer dump-autoload не помог.

Мое решение было очень просто:

  1. php artisan make:migration create_images_table --create=images
  2. composer dump-autoload
  3. Затем я получил: SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
  4. поэтому в sqlite я набрал: CREATE TABLE `images` (…>` id` INTEGER …>);
  5. И затем php artisan migrate:reset
  6. Теперь я снова счастлив

Если мастер не работает вообще и продолжает бросать вам это сообщение независимо от команды, которую вы даете, удалите файл config.php из папки bootstrap/cache .

После этого снова запустите

 php artisan config:cache