在Laravel找不到观察员



我试图在AppServiceProvider中注册我的ObserverHelper,如下所示,但我收到了以下错误。

找不到观察员:App\Helpers\App\observer \FileLogObserver

AppServiceProvider.php

use IlluminateSupportServiceProvider;
use AppHelpersObserverHelper;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
}
public function boot()
{
ObserverHelper::register();
}
}

ObserverHelper.php

namespace AppHelpers;
class ObserverHelper
{
protected static $observers = [
'AppModelsFileLogs' => AppObserversFileLogObserver::class,
];
public static function register()
{
foreach (self::$observers as $model => $observer) {
$model::observe($observer);
}
}
}

尝试在AppObserversFileLogObserver::class前面添加一个(引用全局命名空间的反斜杠(,或者导入该类。

带反斜杠(引用全局命名空间(:

<?php
namespace AppHelpers;
class ObserverHelper
{
protected static $observers = [
'AppModelsFileLogs' => AppObserversFileLogObserver::class,
];
public static function register()
{
foreach(self::$observers as $model => $observer) {
$model::observe($observer);
}
}
}

或带有导入:

<?php
namespace AppHelpers;
use AppObserversFileLogObserver;
class ObserverHelper
{
protected static $observers = [
'AppModelsFileLogs' => FileLogObserver::class,
];
public static function register()
{
foreach(self::$observers as $model => $observer) {
$model::observe($observer);
}
}
}

注意:即使您的代码是一个有效的解决方案,也可以考虑创建一个单独的提供程序来定义观察者(例如ObserverServiceProvider(。

最新更新