Использование события rainlab.user.activate в октябре - PullRequest
0 голосов
/ 08 ноября 2019

Я действительно не знаю, почему это не работает, но я создал новый плагин и имею некоторый код для запуска в методе загрузки, когда пользователь активирован. Одним из них является автоматическое добавление пользователей в группу, когда они регистрируются, используя код ниже

Event::listen('rainlab.user.activate', function ($user) {
  $group = 
    \Rainlab\User\Models\UserGroup::where('code', 'seller')->first();

   $user->groups()->add($group);
    $user->save(); 

}); 

, и это работает отлично. Теперь я хочу добавить новую функцию, которая дает пользователям бесплатный кредит, когда они активируются с использованием приведенного ниже кода, который, кажется, работает, когда я пытаюсь сделать это с обычным запросом ajax, который добавляет указанный кредит пользователю.

Event::listen('rainlab.user.activate', function ($user) {

  $credit = \Corymillz\Adverts\Models\Credit::firstOrCreate(['user_id' => Auth::getUser()->id]);
        $credit->increment('amount', 500);
        $credit->refresh();

  });

Кажется, что это не работает здесь в методе загрузки, когда пользователь активирован, возможно, потому что он не получает аутентифицированного пользователя или что-то еще. Любое понимание, почему это?

1 Ответ

0 голосов
/ 12 ноября 2019

Вы должны использовать экземпляр, возвращенный в прослушивателе событий

 $credit = \Corymillz\Adverts\Models\Credit::firstOrCreate(['user_id' => $user->id]);
        $credit->increment('amount', 500);
        $credit->refresh();

  });
...