gpt4 book ai didi

Laravel 4.1.* 在服务提供者中注册事件的问题

转载 作者:行者123 更新时间:2023-12-02 10:56:54 26 4
gpt4 key购买 nike

我正在尝试向服务提供商注册事件,但我不断收到反射类错误。我查了也没找到解决办法,可能是核心的问题。

// AppServiceProvider.php

<?php namespace App;

use Illuminate\Support\ServiceProvider;
use App\Events\UserEventHandler;

class AppServiceProvider extends ServiceProvider {

public function register() {

// Events
$this->app->events->subscribe(new UserEventHandler);

}

}

// UserEventHandler.php

<?php namespace App\Events;

class UserEventHandler {

/**
* Handle user login events.
*/
public function onUserLogin($event)
{
echo 'subscriber logged in'; exit;
}

/**
* Register the listeners for the subscriber.
*
* @param Illuminate\Events\Dispatcher $events
* @return array
*/
public function subscribe($events)
{
$events->listen('auth.login', 'UserEventHandler@onUserLogin');
}

}

$this->app->events->subscribe(new UserEventHandler); 触发正常,因为我可以到达 subscribe 方法,但是 $events->listen('auth .login', 'UserEventHandler@onUserLogin'); 返回异常 UserEventHandler 类不存在

我在global.php上尝试了相同的代码并且工作正常,所以问题出在ServiceProvider上,我尝试了register()和boot()这两种方法并得到了相同的错误。

[已更新]

我发现在监听事件时需要专门指定完整的命名空间。

public function subscribe($events)
{
$events->listen('auth.login', 'App\Events\UserEventHandler@onUserLogin');
}

最佳答案

如果类与服务提供者位于不同的目录中,则需要声明该类的完整路径。

关于Laravel 4.1.* 在服务提供者中注册事件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com