@freeeeez

Как на Laravel обновлять время посещения пользователя?

В бд users есть строка lasttime, где в формате TIMESTAMP хранится дата последнего посещения. Как обновлять ее при любой загрузке страницы, чтобы не писать в каждом контроллере функцию обновления? Сейчас я его выставляю только при логине в форме, а как сделать чтобы после логина при загрузке любой страницы оно обновлялось?
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
fomvasss
@fomvasss
PHP developer
1. Сделать мидлвар на все роуты, доступные пользователю (пример реализации).
2. Мидлвар будет обновлять массив активных юзеров, сам массив пишем например в кеш сервера.
3. Сделать проверку этого массива, например через крон каждую минуту. Если ид юзере есть в массиве - обновляем запись в БД в таблице юзеров.

Оптимальный вариант для не сильно нагруженных сайтов. Главное что не зависит от запросов пользователя, но минимальная точность зависит, например от настроек крона.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Camaro67
Помог? - "Отметить решением"
Ответ написан
Комментировать
@Kostik_1993
Web Developer
MIddleware
Но вообще это дно. Для такого лучше подключить редис и писать время в него, иначе при уже небольшой нагрузке судя по тому какие вы задаете вопросы, ваш сервер помашет вам рукой
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы