服务提供商未在Laravel 5.8中启动

服务提供商未在Laravel 5.8中启动,laravel,Laravel,我创建了一个新的服务提供商来观察一个模型(App\Providers\EloquentEventServiceProvider.php),如下所示: namespace-App\Providers; 使用Illumb\Support\ServiceProvider; 使用App\Staff; 使用App\oberserver\StaffObserver; 类EloquentEventServiceProvider扩展了ServiceProvider { 公共函数boot() { Staff::o

我创建了一个新的服务提供商来观察一个模型(
App\Providers\EloquentEventServiceProvider.php
),如下所示:

namespace-App\Providers;
使用Illumb\Support\ServiceProvider;
使用App\Staff;
使用App\oberserver\StaffObserver;
类EloquentEventServiceProvider扩展了ServiceProvider
{
公共函数boot()
{
Staff::observe(StaffObserver::class);
}
}
我还将其添加到配置文件(
config\app.php
):

返回[
...
“提供者”=>[
...
App\Providers\EloquentiventServiceProvider::class,
...
]
...
]

不过,观察者方法不起作用。如果我移动
Staff::observe(StaffObserver::class)AppServiceProvider
类,它工作正常。很明显,这是让我的服务提供商启动的问题。我尝试过
php-artisan-config:clear
php-artisan-clear-compiled
composer-update
composer-dump
,但都没有成功。任何帮助都是非常特别的。

您的
oberserver
名称是错误的,正如laravel文档中提到的,它应该是
observer
,这意味着您的所有观察者都应该在
App\oberserver
中,而不是
App\oberserver

因此,我们有两种解决方案:

1-如果要保留命名空间
App\oberserver
,则应运行以下两个命令,因为自动加载文件可能无法正常工作,因为我们创建了一个新文件夹
oberserver

# Autoloading of files
composer dump

# Configure the cache
php artisan config:cache

2-第二种解决方案是将实际的
oberserver
文件夹重命名为
obsers
,这样自动加载文件会很好地工作。

我在所有地方都仔细检查了拼写,但似乎。。。谢谢你的详细回答!