Уникальный визит по IP и датам - PullRequest
1 голос
/ 26 апреля 2020

У меня есть две таблицы: пользователи и посещения, я храню в таблицах посещений, сколько пользователей посетило сайт (модель предложений имеет много посещений), как рассчитать уникальные посещения по IP за все время? $ offer-> visit-> groupBy ('ip') -> count () возвращает количество просмотров IP за все время. Я хочу видеть все уникальные посещения за все дни, например.

У пользователя IP 192.168.0.1 Он посетил один сайт:

25.04.2020 - He visited once.
26.04.2020 - He visited 3 times.

groupBy('ip')->count() - returns 1 view.

Я хочу вернуть 2 просмотра (из-за уникального одно посещение в день)

Как это сделать?

1 Ответ

0 голосов
/ 26 апреля 2020

Вам нужно сгруппировать по сегодняшней дате и IP для вашего отношения. Вы можете достичь этого, используя:

    $offers = Offer::with(['visits' => function ($query) {
                $query->select(DB::raw('DATE(created_at) as date'), 'ip','offer_id')
                      ->groupBy('date', 'ip');
              }])
              ->get();

    foreach ($offers as $offer){
       dump($offer->visits);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...