PHP Artisan выдает странную ошибку [42s02]

Я получаю странную ошибку при попытке использовать PHP Artisan. Я не знаю причину или даже какой файл вызывает это.

Всего несколько минут назад я запустил php artisan migrate:reset, чтобы стереть все таблицы в моей базе данных. Работал нормально.

Затем я внес изменение в файл, совершенно не связанный с таблицей «стадии», и когда я пытаюсь запустить php artisan migrate, он выдает ошибку:

SQLSTATE[42S02]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name 'stages'. (SQL: select * from [stages] where [stages].[deleted_at] is null order by [opord] asc)

Он выдает эту ошибку независимо от того, что я пытаюсь сделать, даже просто ввод php artisan вызывает эту фатальную ошибку.

Кроме того, если я вручную добавлю в БД таблицу с именем «стадии», ремесленник не сразу выйдет из строя, он попытается перенести таблицы, затем произойдет сбой, когда он доберется до таблицы стадий, и он скажет, что это не удалось, потому что «этапы» уже существует.

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

РЕДАКТИРОВАТЬ:

Я обнаружил проблему в каком-то коде, который я добавил в app\Providers\AppServiceProvider.

public function boot(){
    View::share('nav_stages', Stage::opord()->get());
}

Я нашел ТАК вопрос о как проверить, существует ли таблица, и сейчас я пытаюсь это сделать:

public function boot(){
    if (Schema::hasTable('stages'))
    {
        View::share('nav_stages', Stage::opord()->get());
    }else{
        View::share('nav_stages', null);
    }
}

person Brent Connor    schedule 03.08.2015    source источник


Ответы (1)


Проблема была вызвана фрагментом кода, который у меня был в AppServiceProvider.php В коде я пытался запросить в БД данные, необходимые для меню навигации, используемого на всем сайте (главная страница, макет, частичное представление и т. д.).

я заменил

public function boot(){
    View::share('nav_stages', Stage::opord()->get());
}

С участием

public function boot(){
    if (Schema::hasTable('stages'))
    {
        View::share('nav_stages', Stage::opord()->get());
    }else{
        View::share('nav_stages', null);
    }
}

И добавил

use Illuminate\Support\Facades\Schema;

вверху файла

person Brent Connor    schedule 03.08.2015