我已经设置了一个事件,一旦用户注册,它就会做一些事情。更新和插入等,但它不起作用。
我收到错误:
Symfony '' 组件 '' 调试 '' 异常 '' 致命错误异常 (E_ERROR)找不到类"事件处理程序''处理程序''用户"
我不知道为什么它不起作用。但是我没有拼错任何东西,因为如果我例如"返回'test';"在我的事件中它可以工作,但它不会更新我的用户模型
在我的用户控制器中:
$user = User::create([
some values..
]);
Event::fire('user.create', $user);
现在我订阅了我的应用程序/开始/全局.php中的事件,我使用 PSR-4 自动加载文件夹
Event::subscribe('EventHandlers'Handlers'UserAccountActions');
Event::subscribe('EventHandlers'Handlers'ProductActions');
Event::subscribe('EventHandlers'Handlers'CommentActions');
在我的事件/侦听器文件中
<?php namespace EventHandlers'Handlers;
class UserAccountActions {
// Listeners
public function subscribe($events)
{
$events->listen('user.create', 'EventHandlers'Handlers'UserAccountActions@onCreate');
}
// happens when a user register
public function onCreate($user)
{
$user->api_key = User::createApiKey();
}
}
在您的EventHandlers'Handlers'UserAccountActions
中,您引用User
,因为它位于同一命名空间中。您需要添加一个反斜杠'
才能访问全局命名空间中的 User
类:
// happens when a user register
public function onCreate($user)
{
$user->api_key = 'User::createApiKey();
}
(或者,如果User
模型在一个模型中,则指定命名空间。 'Models'User
)
或者,您也可以使用 use 语句导入模型:
use User;
class UserAccountActions {