Я настроил событие, которое делает некоторые вещи, когда пользователь регистрируется. Обновление и вставка и т. Д., Но это не сработает.
Я получаю ошибку:
Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR)
Класс ‘EventHandlers \ Handlers \ User’ не найден
Я не знаю, почему это не сработает. Но я ничего не написал с ошибкой, потому что, если я, например, «вернуть» тест «; в моем случае это работает, но это не будет обновлять мою пользовательскую модель
В моем Usercontroller:
$user = User::create([
some values..
]);Event::fire('user.create', $user);
Теперь я подписываюсь на события в моем app / start / global.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 {
Других решений пока нет …