Проверка таблицы существует в 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();
}
}
}
Второй код решает проблему, но я ищу более элегантный подход. Есть идеи по этому поводу? Буду признателен за любое предложение