Поставщики услуг Laravel отказались от загрузки

У меня есть поставщик услуг, регистрирующий авторизационные ворота, прочитанные из базы данных, например …

class PermissionServiceProvider extends ServiceProvider
{
// ...

public function boot()
{
Permission::get()->map(function($permission) {
Gate::define($permission->slug, function($user) use ($permission) {
return $user->hasPermission($permission);
});
});
}

// ...
}

И я зарегистрировал это в config/app.php

return [

// ...

$providers = [
// ...
App\Providers\PermissionServiceProvider::class,
],

];

Выпуск:

Тесты не будут выполняться, потому что этот поставщик услуг вызывался до установки соединения с базой данных.

Решение:

Defer загрузка поставщика услуг, установив для свойства defer значение true.

class PermissionServiceProvider extends ServiceProvider
{
// ...

protected $defer = true;

public function boot()
{
Permission::get()->map(function($permission) {
Gate::define($permission->slug, function($user) use ($permission) {
return $user->hasPermission($permission);
});
});
}

public function provides()
{
// Not sure of what to do with this yet...
}

// ...
}

Новый выпуск:

Поставщик услуг никогда не звонят вообще.

Вопрос:

Как я могу отложить загрузку поставщика услуг, пока не убедитесь, что база данных настроена и доступна?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]