Поставщик услуг не загружается в Laravel 5.8 - PullRequest
1 голос
/ 27 мая 2019

Я создал нового поставщика услуг для наблюдения за моделью (App\Providers\EloquentEventServiceProvider.php), например:

namespace App\Providers;
use Illuminate\Support\ServiceProvider;

use App\Staff;
use App\Oberservers\StaffObserver;

class EloquentEventServiceProvider extends ServiceProvider
{
  public function boot()
  {
    Staff::observe(StaffObserver::class);
  }
}

Я также добавил его в файл конфигурации (config\app.php):

return [
  ...
  'providers' => [
    ...
    App\Providers\EloquentEventServiceProvider::class,
    ...
  ]
  ...
]

Методы наблюдателя не работают, хотя. Если я перейду Staff::observe(StaffObserver::class); в класс AppServiceProvider, все будет работать нормально. Очевидно, это проблема с загрузкой моего поставщика услуг. Я пробовал php artisan config:clear, php artisan clear-compiled, composer update и composer dump, но ни у кого нет работы. Любая помощь очень важна.

1 Ответ

1 голос
/ 27 мая 2019

ваше Oberservers имя неверно, как указано в документе laravel doc наблюдатели laravel doc это должно быть Observers, что означает, что все ваши наблюдатели должны быть в пределах App\Observers вместо App\Oberservers.

так что здесь у нас есть 2 решения:

1 - если вы хотите сохранить пространство имен App\Oberservers, вам следует выполнить следующие 2 команды, поскольку автозагрузка файлов может работать некорректно, поскольку мы создали новую папку Oberservers:

# Autoloading of files
composer dump

# Configure the cache
php artisan config:cache

2 - второе решение - просто переименовать вашу фактическую папку Oberservers в Observers, чтобы автозагрузка файлов работала хорошо.

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