Прослушивание базы данных с помощью Laravel Websocket

Я выполнил каждую установку, связанную с Laravel Websocket. Вот что я пытаюсь сделать: у меня есть таблица в базе данных, где я храню свои заказы. Когда поступает новый заказ, я хочу распечатать его на консоли на колонке моей домашней страницы.

Буду рад, если вы поможете. Спасибо.

Где ты застрял? Прочитайте laravel.com/docs/9.x/broadcasting и, возможно, laravel.com/docs/9.x/eloquent#events, чтобы сделать это при создании новой модели заказа.

ceejayoz 16.03.2022 19:59
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать событие модели, как показано ниже, в вашей модели заказа.

protected static function booted()
{
    //everytime when new order is created this function will be called
    static::created(function ($order) {
        //then broadcast event
        NewOrder::dispatch($order);
    });
}

Затем вам нужно определить канал в вашем route/channel.php

use App\Models\Order;

Broadcast::channel('newOrder', function ($user) {
   return $user->id;
});

Тогда создайте событие php artisan make:event NewOrder

class NewOrder implements ShouldBroadcast
{

/**
 * The user that created the server.
 *
 * @var \App\Models\User
 */
public $user;

/**
 * Create a new event instance.
 *
 * @param  \App\Models\User  $user
 * @return void
 */
public function __construct(User $user)
{
    $this->user = $user;
}

/**
 * Get the channels the event should broadcast on.
 *
 * @return Channel|array
 */
public function broadcastOn()
{
    return new PrivateChannel('newOrder');
}
}

затем прослушайте событие NewOrder в канале newOrder

Echo.channel(`newOrder`)
.listen('NewOrder', (e) => {
    console.info(e.order);
});

Читать документацию подробнее https://laravel.com/docs/9.x/broadcasting#pusher-каналы

Другие вопросы по теме