Мне нужно получить идентификатор пользователя для имени канала через функцию 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 (), чтобы я мог определить его как имя канала?
Вы можете сделать как ниже, как у вас есть
$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];
}
Других решений пока нет …