artisan migrate:reset
. composer dump-autoload
а затем artisan dump-autoload
Я запустил artisan migrate
и я продолжаю получать эту ошибку:
PHP Неустранимая ошибка: класс 'Foo' не найден в /vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php в строке 297
Я попытался:
composer dump-autoload
и artisan dump-autoload
(также используемый artisan clear-compiled
) artisan migrate:install
composer install
Поиск в моем проекте с помощью PHPStorm для класса Foo. Не нашел ничего.
Я продолжаю получать ту же ошибку. Это первый раз, когда я запускаю его, так как обновляюсь до 4.2, если это может быть связано. Что-нибудь еще мне нужно искать?
У меня тоже была эта пробема. Необходимо помнить: имя класса должно соответствовать имени файла. Мне помогло простое переименование файлов 🙂
Например: в файле «2014_12_08_100923_create_items_tables.php» должен быть класс с именем «CreateItemsTables» с использованием слов CamelCase.
Я решил свою проблему
composer dump-autoload
php artisan migrate
Я не уверен, почему это сработало, но я предполагаю, что в прошлом я мог изменить имя класса этих проблемных миграций.
Я также обнаружил, что переименование миграции с ее начальным именем («Тот, что выбрасывается с фатальной ошибкой») также работает для некоторых из них.
Я столкнулся с этим, и решение было иным, чем все вышеперечисленное. Причина, по которой он терпел неудачу, состояла в том, что имя файла все еще упоминалось в таблице миграции БД. Поскольку не было уникальных столбцов, я не мог удалить его с помощью 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 » снова, и он должен работать как шарм 🙂
Есть более простой способ.
artisan make:migration
artisan migrate:reset
до отката 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 та же проблема исправить это я:
output: No migrations found.
нормально его использовать
выход:
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
не помог.
Мое решение было очень просто:
php artisan make:migration create_images_table --create=images
composer dump-autoload
SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
php artisan migrate:reset
Если мастер не работает вообще и продолжает бросать вам это сообщение независимо от команды, которую вы даете, удалите файл config.php
из папки bootstrap/cache
.
После этого снова запустите
php artisan config:cache