Ребят, всех приветствую. В общем столкнулся с таким вопросом.
Упрощу несущественные нюансы. В базе есть таблица statistic_visit
Примерно с такой структурой: id|visit|date
То есть грубо говоря при каждом обновлении страницы, должен инкреметироваться visit где дата соответствует сегодняшней.
Зондируя просторы интернета и документаций, подумал что правильнее будет сделать через Provider:
class StatisticVisitProvider extends ServiceProvider
{
public function boot(Request $request)
{
$toDay = date("Y-m-d");
StatisticVisit::where('day', $toDay)->increment('view', 1);
}
public function register()
{
}
}
Все отрабатывает, но есть одна проблемка. В базу он при каждом обновлении плюсует не на 1, а на большее число, например 3, 80. Видимо зависимо от того какую страницу открываю.
И соответственно напрашивается вывод, что провайдер отрабатывает не один раз. То есть при каждом ajax запросе, или подгрузке какого либо виджета он отрабатывает инкремент.
Прошу подсказать, как правильно это реализовать, на верном ли я пути если нет то направить.
Заранее премного благодарен.
Этот вариант уже озвучивался в комментарии выше. Я бы тоже делал через middleware. По поводу того, что нужно разграничивать ajax и обычный клиентский синхронный http запрос тут есть несколько вариантов:
https://stackoverflow.com/questions/29231587/laravel-check-if-ajax-request
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости