Laravel обеспечивает событиями, слушателями, вещанием и каналами для связи с интерфейсом через события. Вам не нужно делать это в контроллерах. Вы можете определить широковещательные маршруты в
routes/channels.php
, затем вы можете определить события, которые по умолчанию включают в себя широковещательный метод в скаффолдинге.
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
Привязать слушателей к событию и реализовать для него интерфейс «mustque»они выполняются как асинхронные задания. Вы также можете использовать уведомления Laravel, чтобы обеспечить живое уведомление. laravel broadcasting
Если вы все еще хотите захватить событие в контроллере, вы можете указать в EventServiceProvider как
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
DownloadFile::class => [
CompanyDashboardController::class,
],
];
public function boot()
{
parent::boot();
}
}
ваше событие будет выглядеть как
class DownloadFile
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $process_id;
public function __construct($process_id)
{
$this->process_id = $file;
}
}
Наконец, вы можете получить это событие в вашем контроллере следующим образом:
class CompanyDashboardController extends Controller
{
public function __construct()
{
//constructor
}
public function handle(DownloadFile $event)
{
if($event->process_id == 1)
{
return "something";
}
}
}
Если вы имели в виду какое-либо событие Javascript вместо чтения Laravel Используйте отправленные сервером события для отправки сообщений в браузер