服务提供商无法在Laravel 5.8中启动

时间:2019-05-26 21:51:36

标签: laravel

我创建了一个新的服务提供商来观察模型(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:clearphp artisan clear-compiledcomposer updatecomposer dump,但是都没有工作。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的Oberservers名称错误,如laravel文档observers laravel doc中所述,应该为Observers,这意味着您的所有观察者都应位于App\Observers之内,而不是{{ 1}}。

所以这里有2个解决方案:

1-如果要保留名称空间App\Oberservers,则应在下面运行这2条命令,因为由于我们创建了新文件夹App\Oberservers,文件的自动加载可能无法正常工作:

Oberservers

2-第二种解决方案是将实际的# Autoloading of files composer dump # Configure the cache php artisan config:cache 文件夹重命名为Oberservers,这样,文件的自动加载就可以正常工作。