Создание трекера посетителей в laravel 5.1

Я установил плагин (https://github.com/antonioribeiro/tracker)

Что делает отслеживание, только я хочу получить уникальных посетителей. Я действительно не знаю, как извлечь их из этого пакета. Или как я должен сделать один самостоятельно.

Я хочу, чтобы они возвращались как объект JSON в месяц.

Если бы кто-нибудь мог помочь мне с этим?

Я попробовал это с помощью таблицы tracker_sessions, но это не работает.

Route::get('admin/api', function(){

        $stats = DB::table('tracker_sessions')
          ->groupBy('created_at')
          ->orderBy('created_at', 'ASC')
          ->get([
            DB::raw('created_at as y'),
            DB::raw('COUNT(*) as b')
          ]);

          return json_encode($stats);
    });

Это возвращает что-то вроде этого:

[{"y":"2016-05-22 21:17:17","b":1},{"y":"2016-05-22 21:17:27","b":1},{"y":"2016-05-22 21:17:28","b":2},{"y":"2016-05-22 21:17:29","b":1},{"y":"2016-05-22 21:17:31","b":1},{"y":"2016-05-22 21:17:33","b":1},{"y":"2016-05-22 21:18:10","b":1},{"y":"2016-05-22 21:18:11","b":2},{"y":"2016-05-22 21:18:13","b":1}]

Что совсем не хорошо.


person Robin    schedule 22.05.2016    source источник


Ответы (1)


person    schedule
comment
Хм... Я не этого хочу, мне нужны уникальные посетители this month. Итак Все уникальные посетители (по проверенным IP) за сутки за этот месяц. Поэтому я могу создать график, показывающий количество уникальных посещений в день в этом месяце. - person Robin; 23.05.2016
comment
Ok. Отредактировано с помощью CAST(created_at as DATE). - person Nick; 23.05.2016
comment
Спасибо, но могу ли я получить другой формат даты? Нравится DD-MM-YYY? Также он не упорядочивает client_ip, но если я добавлю ->groupBy('client_ip'), он сгруппирует все вместе.... Как и все дни, но я хочу, чтобы они были отделены друг от друга. - person Robin; 23.05.2016
comment
Вы можете использовать DATE_FORMAT(date,'%d/%m/%Y') вместо CAST(created_at as DATE). Если вам нужно упорядочить по client_ip и не хотите группировать по client_ip, вы можете попробовать упорядочить по max(client_ip), если это подходит в вашем случае. - person Nick; 23.05.2016
comment
laravel.io/bin/NkxQm - это то, что я получаю сейчас, это возвращает [{"y":"22-05-2016","b":11},{"y":"23-05-2016","b":52}], но на самом деле ему нужно быть 1 для b в обоих случаях, потому что мне нужно заказать/получить результат только для 1 IP. Поэтому, если я получаю 999999 записей для 1 IP-адреса, он должен сказать 1, а не 999999. - person Robin; 23.05.2016
comment
Ok. Отредактировано. COUNT(DISTINCT ip_column) as b - person Nick; 23.05.2016