Как переопределить эту функцию для хранения данных в БД? - PullRequest
0 голосов
/ 26 сентября 2019

В BroadcastServiceProvider.php у меня есть данные, когда пользователь присоединяется к каналу, и я хотел бы сохранить их в БД.Мне интересно, как переопределить эту функцию storeUser (), чтобы она работала (я использовал эту функцию раньше, но это было в других обстоятельствах).

   public function storeUser() {
       UserInfo::create([
      'ip' => Request::ip(),
      'name' =>  Auth::user()->name    
    ]);  
  }

BroadcastServiceProvider.php

   Broadcast::channel('chat', function ($user) {
        $ip = Request::ip();
        if (auth()->check()) { 
            return [
                'id' => $user->id,
                'ip' => $ip,
                'name' => $user->name
            ];
        }
    });

1 Ответ

1 голос
/ 26 сентября 2019

Обновите модель UserInfo, чтобы иметь метод storeUser.

class UserInfo
{
   public static function storeUser() {
        UserInfo::create([
       'ip' => Request::ip(),
       'name' =>  Auth::user()->name    
   ]);  
} 

Затем вы можете вызвать его в вещателе

Broadcast::channel('chat', function ($user) {
    $ip = Request::ip();
    if (auth()->check()) { 
        UserInfo::storeUser();
        return [
            'id' => $user->id,
            'ip' => $ip,
            'name' => $user->name
        ];
    }
});

Вы также можете вызвать его втаким же образом UserInfo::storeUser(); в контроллере пользователя там, где он вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...