Страница недавней активности в Laravel - PullRequest
0 голосов
/ 22 марта 2019

У нас большая система с сотнями моделей (пользователи, сотрудники, платежи, задачи, проекты и т. Д.).

Мы хотели бы создать главную страницу для нашей системы, которая отображает последние действия (страница в стиле Facebook). Эта главная страница будет очень простой и будет отображать что-то вроде:

Проект № 123, модифицированный Фрэнком Смитом (1 час назад).

Задание № 129 создано Джоном Куком (1 день назад).

и т.д.

Каждый из них будет ссылаться на измененную модель. Есть ли «простой» способ реализовать это без необходимости распространять код по всей нашей системе?

Я уверен, что у Laravel есть кое-что, что сделало бы реализацию этого очень простой. Но не могу найти решение.

Ответы [ 3 ]

2 голосов
/ 22 марта 2019

Определите общий интерфейс для моделей, о которых вы заботитесь, чтобы убедиться, что вы можете получить идентификатор, имя или любую другую информацию из всех моделей. (Редактировать: вам, вероятно, не нужна модель для определения пользователя и метки времени, поскольку она может быть извлечена из текущей метки времени и текущего пользователя авторизации).

Определите прослушиватель событий для 'eloquent.saved', который проверяет, реализует ли модель этот интерфейс, и создает фид "post" с этой информацией.

1 голос
/ 22 марта 2019

Я бы лично пошел по маршруту Наблюдателей за моделями Laravel. Затем вы можете сохранить события в таблице в базе данных и использовать их для своей главной страницы. Подробнее о наблюдателях моделей можно прочитать здесь - https://laravel.com/docs/5.8/eloquent#observers

0 голосов
/ 22 марта 2019

Лично я еще не использовал его (сделаю очень скоро), но я подумал, что эта библиотека может удовлетворить ваши потребности: https://github.com/spatie/laravel-activitylog

Надеюсь, она подойдет для вашего случая

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...