радиовещание для нескольких охранников - PullRequest
0 голосов
/ 24 июня 2018

У меня есть следующие параметры авторизации, определенные для моего приложения admins, designers, customers и т. Д. По умолчанию используется защита designer guard.

Я хочу каждые guardиметь свои private channel.Так что я определяю его в моем channel.php с несколькими записями для каждого, как показано ниже

Broadcast::channel('private.admins.{id}', function ($admin, $id) {


    Log::info($admin);
    //logging the admin

});

Но это всегда binding с классом default guard, поэтому мой вопрос, как мне сказать, что использовать здесьAdmin model.Я не могу найти это нигде.Так что вы можете указать мне правильное направление

На самом деле я хочу, чтобы у каждого guard был свой private channel.

1 Ответ

0 голосов
/ 24 июня 2018

Попробуйте изменить в BroadcastServiceProvider файле app\Providers\BroadcastServiceProvider.php

Различные конечные точки авторизации широковещания для каждого охранника

public function boot()
{
   //Broadcast::routes();
   //match any of the 3 auth guards
   Broadcast::routes(['middleware' => ['web','auth:admins,designers,customers']]);
   require base_path('routes/channels.php');
}

Теперь в channel.php

Broadcast::channel('admins.channel.{id}', function ($admin, $id) {
      return $admin->id === $id && get_class($admin) === 'App\Admin';
});

Broadcast::channel('designers.channel.{id}', function ($designer, $id) {
      return $designer->id === $id && get_class($designer) === 'App\Designer';
});

Broadcast::channel('customers.channel.{id}', function ($customer, $id) {
      return $customer->id === $id && get_class($customer) === 'App\Customer';
});
...