UserController.php
event(new MyEvent($MyObject));
MyEvent.php
public function broadcastOn()
{
return new PrivateChannel('check-validity.'.$this->MyObject);
}
channel.php
Broadcast::channel('check-validity.{MyObject}', function ($user, $MyObject) {
$sameMyObject = MyModel::where('some_id', $MyObject->some_id)
->where('state', 1000)
->where('user_id', $user->id)
->where('some_other_id', $MyObject->some_other_id)
->first();
if($sameMyObject)
{
return true;
}
});
У меня есть таблица с именем MyTable
в качестве примеракоторый имеет несколько столбцов.Наиболее важные из них: some_id
, user_id
, some_other_id
.Когда пользователь запускает event(new MyEvent($MyObject))
, содержимое $MyObject
является объектом его самого, НО я хочу проверить здесь в Broadcast::channel('check-validity...
, есть ли у другого пользователя такая же строка в MyTable
с некоторыми отличиями, которые могут быть ->where('state', 1000)
или нет.Если так было, то отправлять только этому пользователю (концепция аутентификации для этого пользователя).
Теперь мой вопрос: можно ли передать объект | массив в Broadcast::channel
?если да, как я могу передать данные другого пользователя об этом $MyObject
в Echo?Я спрашиваю об этом, потому что до этого я мог передавать другие пользовательские данные, которые были ТОЛЬКО ТОЛЬКО user_id
, что я сделал html-тег и получил значение для его передачи через канал: window.Echo.private('valid-user.' + user_id)
, но теперь вместо этого user_id
Iне знаю, как я могу передать MyObject
контент для аутентификации из-за этих sql несколько условий должны быть установлены.
Спасибо:)