Какой самый чистый способ для запроса в Laravel SPA - PullRequest
0 голосов
/ 26 марта 2020

Я создаю Laravel SPA. Там у меня есть уведомления, относящиеся к пользователю.

Каков самый чистый способ получения не прочитанных уведомлений для пользователя? И как работают профессионалы?

  1. /api/users/{id}/unreadNotifications --- контроллер $user->unreadNotifications
  2. /api/notifications/unreadNotifications --- контроллер Auth()->user()->unreadNotifications

1 Ответ

0 голосов
/ 26 марта 2020

Два варианта:

  1. Регулярно опрашивайте маршрут через интервалы от внешнего интерфейса (не уверен, используете ли вы Vue, React или другую JS платформу).

  2. Используйте радиовещание с эхом и пушером. js.

https://laravel.com/docs/master/broadcasting

https://mattstauffer.com/blog/introducing-laravel-echo/

Для опроса, если вы используете Vue, вы можете сделать что-то вроде:

  data() {
    return {
      pulseIntervalId: null,
      pulseInterval: 60000, // 60000 1 Minutes // 120000 2 Minutes // 180000 3 Minutes // 300000 5 minutes
    };
  },
  mounted() {
      this.unreadNotificationsPulse();

      ...
  },
  beforeDestroy() {
    clearInterval(this.pulseIntervalId);
  },
  methods: {

    ... 

    unreadAlertsPulse() {
      const self = this;
      self.pulseIntervalId = setInterval(() => {

            // Do your call to your api here with promise if needed here, not sure if you are calling from file or using state management like vuex and updating the store that way...

      }, self.pulseInterval);
    },

    ...

...