У меня есть новостная лента, если пользователь X
прокомментировал сообщение пользователя Y
, тогда пользователь Y
должен получить уведомление. Теперь проблема в том, что у пользователя Y
нет идентификатора поста, по которому пользователь X
прокомментировал:
// Create comment
$comment = new Comment;
$comment->post_id = $post_id;
$comment->user_id = $user_id;
$comment->body = $body;
$comment->save();
// Save activity in database
$newUser = PostActivity::firstOrCreate([
'post_id' => $post_id,
],[
'user_id' => Auth::user()->id,
'post_id' => $post_id,
'seen' => '0'
]);
// Dispatch event with newly created comment
FeedCommentActivity::dispatch($comment);
Событие:
public function broadcastOn()
{
return new PrivateChannel('post-comment-activity.' .$this->activity->post_id);
}
Канал:
Broadcast::channel('post-comment-activity.{postId}', function ($user, $postId) {
// Lets say true for the time
return true;
});
И слушатель, вот тут возникает мой вопрос, как тут может подойти postId
:
Отгде postId
придет, чтобы прослушать и соответствовать канал, который слушает.
window.Echo.channel('post-comment-activity' + postId)
.listen('FeedCommentActivity', e => {
console.log('New comment by a user');
console.log(e);
});
Я хочу уведомить участника или владельца сообщения, чтобы получать уведомления при появлении нового комментарияподходит.
Что будет обходным путем?Есть альтернативный способ?