Проверка таблицы существует в AuthServiceProvider

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

Вот сценарий внутри поставщика услуг, скажем, внутри 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();
        }
    }
}

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

0 ответов

Другие вопросы по тегам