Проверка таблицы существует в AuthServiceProvider - PullRequest
0 голосов
/ 07 января 2019

Привет, есть ли самый простой и лучший способ проверить, существует ли таблица внутри поставщика услуг?

Вот сценарий внутри сервис-провайдера, скажем, внутри AuthServiceProvider в этом классе под функцией загрузки выполняется поиск записей таблицы. Но теперь возникает вопрос: а что если эта таблица не существует? тогда эта строка кода потерпит неудачу, верно?

Таким образом, после запуска php artisan migrate каким-то образом выполняется код в поставщике услуг (что, я думаю, не должно иметь место). Поэтому, когда я пытаюсь выполнить миграцию, возникает ошибка, и команда migrate не выполняется, поскольку таблица еще не существует. Чтобы сделать это более понятным ниже, возможный сценарий

// MyServiceProvider

class MyServiceProvider extends ServiceProvider
{
    public function boot()
    {

        $my_table_record = MyTable::with('connectTable')->get(); <<-- this throws an error when running php artisan migrate since MyTable does not exist yet
    }
}

Я могу это исправить, проверив, существует ли таблица, добавив импорт схемы, как показано ниже

// MyServiceProvider


use Illuminate\Support\Facades\Schema;

class MyServiceProvider extends ServiceProvider
{
    public function boot()
    {
        if (Schema::hasTable('my_table')) {
            $my_table_record = MyTable::with('connectTable')->get();
        }
    }
}

Второй код исправляет проблему, но я ищу более элегантный подход. Есть идеи по этому поводу? Буду признателен за любое предложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...