Laravel, получите идентификатор пользователя для BroadcastOn ()

Мне нужно получить идентификатор пользователя для имени канала через функцию BroadcastOn ()?

То, что я пытаюсь сделать, это:

Новое событие:

event(new \App\Events\chat($message, $userid, $avatar, $username, $receiver, $msgid));

Само событие

public $message;
public $user;
public $avatar;
public $username;
public $receiver;

Построить:

public function __construct($message, $user, $avatar,$username,$receiver,$msgid) {
$this->message = $message;
$this->user = $user;
$this->avatar = $avatar;
$this->username = $username;
$this->receiver = $receiver;
$this->msgid = $msgid;

}

Трансляция:

public function broadcastOn() {
$user = \Auth::user()->id();
return new Channel($user);
}

И если я попытаюсь dd \ Auth :: user (); это дает мне ноль, что, я полагаю, заключается в том, что пользователь не распознается в событиях через аутентификацию. Есть ли способ как-то передать пользователя в broadcastOn (), чтобы я мог определить его как имя канала?

2

Решение

Вы можете сделать как ниже, как у вас есть $user уже в конструкторе

public function broadcastOn() {
{
return ['channel_'.$this->user->id];
}

Или передайте идентификатор пользователя

public function __construct($message, $user, $avatar,$username,$receiver,$msgid,$userid) {
$this->message = $message;
$this->user = $user;
$this->avatar = $avatar;
$this->username = $username;
$this->receiver = $receiver;
$this->msgid = $msgid;
$this->userid= $userid;

}

а потом

public function broadcastOn() {
{
return ['channel_'.$this->userid];
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector