Giter Site home page Giter Site logo

awssat / laravel-visits Goto Github PK

View Code? Open in Web Editor NEW
921.0 21.0 88.0 181 KB

๐Ÿ“Š Laravel Visits is a counter that can be attached to any model to track its visits using Redis or Eloquent. (with tags, IP protection and caching)

Home Page: https://awssat.com/opensource

License: MIT License

PHP 100.00%
laravel php redis counter visits laravel-package stats laravel-visits visitor increment

laravel-visits's People

Contributors

abdullahghanem avatar abdumu avatar ahoiroman avatar bsn4 avatar d8vjork avatar joe94113 avatar kadonwills avatar laravel-shift avatar malicucen avatar monkeywithacupcake avatar nicola-diguida avatar qiutuleng avatar realrashid avatar samuelnitsche avatar vrajroham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

laravel-visits's Issues

Laravel Nova Issue

  • Operating system and version (e.g. Ubuntu 16.04, Windows 7):
    MacOS Catalina - Valet

  • Package Version: #.#.#
    2.2

  • Laravel Version: #.#.#
    Laravel - 6.2
    Nova - 2.11.1

  • Link to your project:
    N/A

Description:

I need the ability to ignore this when using Nova as its trying to insert into action_events while editing rows.

Steps To Reproduce:

Install Laravel + Nova
Create resources
Try to update rows

Call to a member function visits() on null

Windows 10

  • Package Version: 2.2
  • Laravel Version: 6.2

Description:

Call to a member function visits() on null
Have this error when trying to get popular products/
public function getPopularProducts()
{
return visits('App\Product')->top(10);
}

Thanks for your package!

visits($model)->increment(1); returns null;

I'm using Laravel 6.x and Laravel Visits ^2.0,

in my TutorialController, I've these following codes:

 $check = visits($tutorial)->increment(1, true);
 dd($check);exit;

When I access it on a browser, it returns null; When I check the phpRedisAdmin is nothing from Laravel Visits being added.

my database.php

'redis' => [
    // another redis config
    # For Laravel Visits
        'laravel-visits' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 4, // anything from 1 to 15, except 0 (or what is set in default)
        ],
]

Note: I've already setup the Redis and it's working fine

Thanks

Detailed Visitor History

Hey,
What about having historical visitor information?

Like;
visits($post)->period('day', 0)->count(); //returns today's visits
visits($post)->period('day', 1)->count(); //returns yesterday's visits

[Proposal] More granularity in configuration/helper

Should be good to have more options in the config/helper, for example for choosing what values we need and optimize ram usage, that is a precious resource.

For example, when we need to save only total views of a specific model (and show it in the page as a counter) and not countries, ip, day/month/years, etc.
Because very often we manage these data through log analysis (or other analytics) and these will be a duplication and a waste of resources.

What do you'all think?

hello. i have a problem for my code. i want to get counts for every news data.

  • Operating system and version (Windows 7):
  • Laravel Version: 7

Description:

$news = News::where('deleted_at', null)->orderBy('created_at', 'desc')->paginate(10);
$count = visits($news)->count();

hi i'm new with this and i'm having a issue with it. i want to show news with view count but i don't know how to combine those two. i'm trying to get list with counts on it if it is possible pls let me know. (btw sry for bad english im not a english person XD and thank you for your good work and i hope you for the best)

PHP 8 Suppot

  • Operating system and version: Ubuntu 20.04
  • Package Version: 3.0.1
  • Laravel Version: 8.16.1

Description:

Problem 1
โ€ƒ - awssat/laravel-visits[3.0.0, ..., 3.0.1] require php ^7.3 -> your php version (8.0.0) does not satisfy that requirement.
โ€ƒ - Root composer.json requires awssat/laravel-visits ^3.0 -> satisfiable by awssat/laravel-visits[3.0.0, 3.0.1].

Predis\Response\ServerException thrown with message "WRONGTYPE Operation against a key holding the wrong kind of value"

  • Operating system and version (e.g. Ubuntu 16.04, Windows 7): Laravel Homestead on macOS 10.15.1
  • Package Version: 2.2.0
  • Laravel Version: 5.8.37

Description:

Predis\Response\ServerException thrown with message "WRONGTYPE Operation against a key holding the wrong kind of value"

Stacktrace:
#62 Predis\Response\ServerException in /home/vagrant/code/MonkeyCam/vendor/predis/predis/src/Client.php:370
#61 Predis\Client:onErrorResponse in /home/vagrant/code/MonkeyCam/vendor/predis/predis/src/Client.php:335
#60 Predis\Client:executeCommand in /home/vagrant/code/MonkeyCam/vendor/predis/predis/src/Client.php:314
#59 Predis\Client:__call in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:114
#58 Illuminate\Redis\Connections\Connection:command in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:214
#57 Illuminate\Redis\Connections\Connection:__call in /home/vagrant/code/MonkeyCam/vendor/awssat/laravel-visits/src/DataEngines/RedisEngine.php:35
#56 Awssat\Visits\DataEngines\RedisEngine:increment in /home/vagrant/code/MonkeyCam/vendor/awssat/laravel-visits/src/Traits/Record.php:22
#55 Awssat\Visits\Visits:recordRefer in /home/vagrant/code/MonkeyCam/vendor/awssat/laravel-visits/src/Visits.php:212
#54 Awssat\Visits\Visits:increment in /home/vagrant/code/MonkeyCam/app/Http/Controllers/ProfileController.php:44
#53 App\Http\Controllers\ProfileController:showProfile in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
#52 call_user_func_array in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
#51 Illuminate\Routing\Controller:callAction in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45
#50 Illuminate\Routing\ControllerDispatcher:dispatch in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Route.php:219
#49 Illuminate\Routing\Route:runController in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Route.php:176
#48 Illuminate\Routing\Route:run in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Router.php:680
#47 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#46 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
#45 Illuminate\Routing\Middleware\SubstituteBindings:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#44 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#43 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:75
#42 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#41 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#40 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php:58
#39 Illuminate\Session\Middleware\AuthenticateSession:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#38 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#37 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49
#36 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#35 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#34 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:56
#33 Illuminate\Session\Middleware\StartSession:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#31 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
#30 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#29 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#28 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:66
#27 Illuminate\Cookie\Middleware\EncryptCookies:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#26 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#25 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#24 Illuminate\Pipeline\Pipeline:then in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Router.php:682
#23 Illuminate\Routing\Router:runRouteWithinStack in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Router.php:657
#22 Illuminate\Routing\Router:runRoute in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Router.php:623
#21 Illuminate\Routing\Router:dispatchToRoute in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Router.php:612
#20 Illuminate\Routing\Router:dispatch in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
#19 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#18 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/fideloper/proxy/src/TrustProxies.php:57
#17 Fideloper\Proxy\TrustProxies:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#15 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21
#14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#12 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21
#11 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#9 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
#8 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#6 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:62
#5 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#3 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#2 Illuminate\Pipeline\Pipeline:then in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /home/vagrant/code/MonkeyCam/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in /home/vagrant/code/MonkeyCam/public/index.php:55

Integrity constraint violation: 1062 Duplicate entry 'visits:posts_visits_countries:296-in' for key 'visits.visits_primary_key_secondary_key_unique'

  • Operating system and version: Ubuntu 18.04.4 LTS
  • Package Version: 2.2.0
  • Laravel Version: 6.0.3
  • Link to your project: https://izklop.com/

Description:

I keep getting Duplicate entry errors in my project after deploying to production.

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'visits:posts_visits_countries:296-in' for key 'visits.visits_primary_key_secondary_key_unique'

Doctrine\DBAL\Driver\PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'visits:posts_visits_countries:296-in' for key 'visits.visits_primary_key_secondary_key_unique'

Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'visits:posts_visits_countries:296-in' for key 'visits.visits_primary_key_secondary_key_unique' (SQL: insert intovisits (primary_key, secondary_key, score, updated_at, created_at) values (visits:posts_visits_countries:296, in, 1, 2020-03-06 22:14:58, 2020-03-06 22:14:58))

Steps To Reproduce:

$post->visits()->increment();

Migration Issue with Laravel V8

I follow installation instructions with database as data engine.

When I migrate I get the following error:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 byt
es (SQL: alter table visits add unique visits_primary_key_secondary_key_unique(primary_key, secondary_key ))

In my AppServiceProvider I have already
use Illuminate\Support\Facades\Schema;

public function boot()
{
  Schema::defaultStringLength(191);
}

The problem is with the table $table->unique(['primary_key', 'secondary_key']);

If I change to $table->unique('primary_key', 'secondary_key'); then the migration has no problem but is this the correct approach to fix this error?

Thanks in advance

Question: count grouped by week/month/year

  • Package Version: 2.2.1
  • Laravel Version: 6.3

Description:

Sorrry for this dump question, its there a way to bring the results grouped by (Month, Week, Year) or maybe by model.

like:

 visits('App\Specialist')->grouped('months')->count();
OR
 visits($post)->grouped('months')->count();
[
'1' => 15
'2' => 25
'3' => 8
....
'12' =>  5
]

Store custom data

I do not know if it already has, but I think it would be interesting to allow us to pass customized data to the viewer.
Ex: visits($model)->custom(['user_id' => 1])->increment()

Multi Counter per Model

Hi,

Is it possible to have two counter per model?
Let's say there is App\Post model, counter one is called views and the another counter is called clicks.

Please let me know if this possible.

Getting "The geopip is not valid" often

I have a Partner Model. Every Partner has it's own page.

Within my e.g. PartnerController, I would do this:

public function getProfile($username){
	$partner = Partner::where('username', $username)->first();  
    	$partner->visits()->increment();
    	$partner->visits()->count(); 

return view('partner.profile.show', compact('partner'));
}

Partner.php

 public function visits()
    {
        return visits($this);
    }

But somehow, I get the exception "The geoip is not valid", way too often? After clearing cache and config, it still returns the exception, multiple times...

Any way around the geoip?

By the way, thank you for the great logic, and package.

Can statistics be obtained by date?

Detailed description

Can statistics be obtained by date?For example,I want to get the number of current entries by setting a dateใ€‚

Context

Possible implementation

This requirement is used to solve detailed data statistics problems

Your environment

Include as many relevant details about the environment you experienced the bug in and how to reproduce it.

  • Version used (e.g. PHP 5.6, HHVM 3):
  • Operating system and version (e.g. Ubuntu 16.04, Windows 7):
  • Link to your project:
  • ...
  • ...

Get visits id only on top() and low()

I think we should add get visits id only to top() and low() for customize. I want to select some fields instead of all fields when calling these methods.

Thanks for awesome package

Support for Laravel 5.8

Detailed description

I can not update to Laravel 5.8, because the update throws:

roblem 1
    - Conclusion: remove awssat/laravel-visits 1.5.2
    - Conclusion: don't install awssat/laravel-visits 1.5.2
    - Conclusion: don't install awssat/laravel-visits 1.5.1
    - Conclusion: don't install awssat/laravel-visits 1.5.0
    - Conclusion: don't install awssat/laravel-visits 1.4.4
    - Conclusion: don't install awssat/laravel-visits 1.4.3
    - Conclusion: don't install awssat/laravel-visits 1.4.2
    - Conclusion: don't install laravel/framework v5.8.2
    - Conclusion: don't install laravel/framework v5.8.1
    - Installation request for awssat/laravel-visits ^1.4 -> satisfiable by awssat/laravel-visits[1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.5.0, 1.5.1, 1.5.2].
    - Conclusion: don't install laravel/framework v5.8.0
    - awssat/laravel-visits 1.4.1 requires illuminate/support 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.* -> satisfiable by illuminate/support[5.1.x-dev, 5.2.x-dev, 5.3.x-dev, 5.4.x-dev, 5.5.x-dev, 5.6.x-dev, v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.30, v5.1.31, v5.1.41, v5.1.6, v5.1.8, v5.2.0, v5.2.19, v5.2.21, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.31, v5.2.32, v5.2.37, v5.2.43, v5.2.45, v5.2.6, v5.2.7, v5.3.0, v5.3.16, v5.3.23, v5.3.4, v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.36, v5.4.9, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9], laravel/framework[5.4.x-dev, 5.5.x-dev, 5.6.x-dev].

Connection refused [tcp://127.0.0.1:6379] during test

Detailed description

As it turns out this package rely heavily on Redis, which is fine, but there's a problem if you try to test an HTTP layer for example

Context

HTTP and Unit tests on models that have visit package integrated

How can it benefit other users?

Possible implementation

/

Your environment

Include as many relevant details about the environment you experienced the bug in and how to reproduce it.

  • Version used (e.g. PHP 5.6, HHVM 3): 7.3
  • Operating system and version (e.g. Ubuntu 16.04, Windows 7): Xenial

Unable to locate publishable resources.

  • Operating system and version (Windows 10):
  • Package Version: 2.0.0
  • Laravel Version: 6.10.0
  • Link to your project:

Description:

Hello, installing the Laravel package and following the installation instructions, this command gives me an error.

php artisan vendor:publish --provider="Awssat\Visits\VisitsServiceProvider" --tag="migrations"

Unable to locate publishable resources.
Publishing complete.

Steps To Reproduce:

1 - composer require awssat/laravel-visits
2 - php artisan vendor:publish --provider="Awssat\Visits\VisitsServiceProvider" --tag="migrations"

Monthly wise Top visitors & count

  • Package Version: ^2.2
  • Laravel Version: 7

Description:

In my project I want to show Top 5 visitors name & count of articles they visit. May I know how do I achieve this. ? I attached image for the reference.

top-visitors

Clear cache will clear everything out

Detailed description

Artisan command line artisan cache:clear will clear all the data. This kind of storage should be a persistent storage, not like cache.

Context

  1. Install and used;
  2. Set your default cache driver to redis at the config/cache.php file.
  3. Use artisan cache:clear;
  4. check the count;

Possible implementation

With reference to connection field in the config/session.php file.

Your environment

Newly homestead.

Hi, when i'm trying $thread->visits()->increment() I get the "The GeoIP service is not valid." error.

Detailed description

Provide a detailed description of the change or addition you are proposing.

Make it clear if the issue is a bug, an enhancement or just a question.

Context

Why is this change important to you? How would you use it?

How can it benefit other users?

Possible implementation

Not obligatory, but suggest an idea for implementing addition or change.

Your environment

Include as many relevant details about the environment you experienced the bug in and how to reproduce it.

  • Version used (e.g. PHP 5.6, HHVM 3):
  • Operating system and version (e.g. Ubuntu 16.04, Windows 7):
  • Link to your project:
  • ...
  • ...

Problem with top() and low() methods

Hi,

Thanks for this awesome package, I really love it!

However, I faced a strange behaviour when using top() and low() methods. Let assume I have 6 posts when I want to get 5 most popular posts top(5) it returns 6 posts but it works fine if I'm using other numbers as long it's not total - 1 e.g. top(1), top(2) etc, and when I want to get one least popular post low(1) it returns two posts, almost similar to top method other numbers are work just fine as long it's not 1.

Environment

  • PHP 7.2.10
  • Laravel Framework 5.7.6
  • macOS High Sierra

[Question] Hourly Period

Hi,

in config/visits.php, can we set more period options? i.e, Add hour, or half a day period. So we can see top or lowest traffic this hour?

This cache store does not support tagging

  • Operating system and version (Ubuntu 19.10):
  • Package Version:^2.1-dev
  • Laravel Version: 6.9.0
  • Link to your project: Local

Description:

I want to use the database, so, I change the config file to:

'engine' => 'eloquent',
'connection' => 'mysql',

then when use visits($blog)->increment() it's return error message This cache store does not support tagging

How to stop tagging in the package?

Count total viewer without attach to model

Hii, I've implemented this amazing package for my current project
I can count a visitor to a page that the data is taken from model,
Then I have a question.
Can I count a total viewer for a specific static page that I've made?

order by visit

how can order a model by visits?

ex: Post::orderByUniqueViews('asc', Period::pastDays(3))->get();

Tag is always empty, default or optional tags not stored into db

Hello, I was testing the tag feature on my project, and then I found out that tags are actually not stored into the rdb. And I spent sometime reviewing the source codes and couldn't find out what exactly causes this issue.

This is how I tested the tag feature:

visits($artist, 'test')->increment();
return response(visits($artist, 'test')->count());

And this is what actually stored in db:

screen shot 2018-07-26 at 12 40 43 pm

When I modified the visits method in Keys class:

     /**
     * Get cache key
     *
     * @param $key
     * @return string
     */
    public function visits($key)
    {
        return "{$this->prefix}:$this->testing" .
            strtolower(str_plural(class_basename(is_string($key) ? $key : get_class($key))))
            . "_test";
    }

It does store correctly in db:

screen shot 2018-07-26 at 12 53 39 pm


I did try to modify the tag value in the constructor or assign a value for the declared parameter, but the actually key store into db is still empty.

Unable to locate publishable resources

  • Operating system and version (Window 10):
  • Package Version: 2.2
  • Laravel Version: 7.24
  • Link to your project:

Description:

when I use command
php artisan vendor:publish --provider="Awssat\Visits\VisitsServiceProvider" --tag=config

The system show error : "Unable to locate publishable resources" and The file config/visits was not create

Steps To Reproduce:

more than one user on same IP

First of all congratulate the creators of this solution.

But there is a question. The viewcount is not doubling as the page reloads, that's fine, now I've experimented with 2 different browsers and it hasn't increased the count, assuming I'm in my development environment.

In this context, assuming my users will be on the internet, some of them may be using shared (public) IPs, in which case there is a possibility of giving me a wrong number of views.

same value for day, month, year visitor counter

Problem

I am facing a problem, using visits('App\Registration')->period('day')->count() in my view results to same number with visits('App\Registration')->period('month')->count() and year visits('App\Registration')->period('year')->count()

Don't know why it is behaving as such, mostly I refer to the docs and I only found a solution to reset the counter.

Server and Application Environment

  • Laravel 7
  • PHP 7.2
  • Apache Web Server
  • MySQL database engine

Hope this give you clear view of my problem and anyone could advice for solution pertaining to the issue. Thanks

laravel5.8, the count always 0

laravel5.8 project
use

$article = Article::find(1);

visits($article)->increment();

$article->view_count = visits($article)->count();

but the count always 0

WX20190518-145431@2x

thank you very much!!!

Incorrect daily visit count

Hello,

I created these two calls to visit:

 $user_visits       = visits('App\User')->count();
 $user_visits_today = visits('App\User')->period('day')->count();

$user_visits is always correct, I am often getting this result:

  • $user_visits: 13
  • $user_visits_today: 0

After visiting a user's profile, which calls $user->visits()->seconds(86400)->increment();, the result is:

  • $user_visits: 14
  • $user_visits_today: 14

laravel 5.7 install error

composer require awssat/laravel-visits
error:

In VisitsServiceProvider.php line 21:

  Call to undefined method Carbon\Carbon::macro()

Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1

_20190218195311

Get User Collection of visitors and track specific user visits

Hi how we can find out witch users see a $model records ( ex. get list of a user see a post) ?
And How we can get lists of a Models (ex. List of Posts and Products) a user seen ?

Provide a detailed description of the change or addition you are proposing.

#enhancement

Eager load relationship for visits

I have just started playing with the library so maybe I am missing something obvious, but I couldn't find a way to show visits data for a list of items, without getting into the N+1 problem.

$posts = Post::where('isDraft', false)->get();
foreach ($posts as $post) {
    visits($post)->count();
}

This cache store does not support tagging

Hi there,

I just installed your package (thank you for creating it :-) ). Unfortunately I'm getting the following error:

This cache store does not support tagging

This is the line the error is thrown:

public function tags($names)
    {
        if (! method_exists($this->store, 'tags')) {
            throw new BadMethodCallException('This cache store does not support tagging.');
        }
 
        $cache = $this->store->tags(is_array($names) ? $names : func_get_args());
 
        if (! is_null($this->events)) {
            $cache->setEventDispatcher($this->events);
        }
 
        return $cache->setDefaultCacheTime($this->default);
    }

This is the stack trace:

BadMethodCallException thrown with message "This cache store does not support tagging."

Stacktrace:
#74 BadMethodCallException in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Cache/Repository.php:432
#73 Illuminate\Cache\Repository:tags in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:323
#72 Illuminate\Cache\CacheManager:__call in /home/vagrant/code/vendor/torann/geoip/src/Cache.php:32
#71 Torann\GeoIP\Cache:__construct in /home/vagrant/code/vendor/torann/geoip/src/GeoIP.php:91
#70 Torann\GeoIP\GeoIP:__construct in /home/vagrant/code/vendor/torann/geoip/src/GeoIPServiceProvider.php:38
#69 Torann\GeoIP\GeoIPServiceProvider:Torann\GeoIP\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Container/Container.php:776
#68 Illuminate\Container\Container:build in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Container/Container.php:658
#67 Illuminate\Container\Container:resolve in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Container/Container.php:609
#66 Illuminate\Container\Container:make in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:735
#65 Illuminate\Foundation\Application:make in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:121
#64 app in /home/vagrant/code/vendor/torann/geoip/src/helpers.php:14
#63 geoip in /home/vagrant/code/vendor/awssat/laravel-visits/src/Traits/Record.php:45
#62 awssat\Visits\Visits:getVisitorCountry in /home/vagrant/code/vendor/awssat/laravel-visits/src/Traits/Record.php:14
#61 awssat\Visits\Visits:recordCountry in /home/vagrant/code/vendor/awssat/laravel-visits/src/Visits.php:184
#60 awssat\Visits\Visits:increment in /home/vagrant/code/app/Http/Controllers/TenderController.php:77
#59 App\Http\Controllers\TenderController:show in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
#58 call_user_func_array in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
#57 Illuminate\Routing\Controller:callAction in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45
#56 Illuminate\Routing\ControllerDispatcher:dispatch in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Route.php:212
#55 Illuminate\Routing\Route:runController in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Route.php:169
#54 Illuminate\Routing\Route:run in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Router.php:682
#53 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#52 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Auth/Middleware/EnsureEmailIsVerified.php:28
#51 Illuminate\Auth\Middleware\EnsureEmailIsVerified:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#50 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#49 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/passport/src/Http/Middleware/CreateFreshApiToken.php:50
#48 Laravel\Passport\Http\Middleware\CreateFreshApiToken:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#47 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#46 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
#45 Illuminate\Routing\Middleware\SubstituteBindings:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#44 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#43 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php:43
#42 Illuminate\Auth\Middleware\Authenticate:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#41 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#40 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:75
#39 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#38 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#37 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49
#36 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#35 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#34 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:63
#33 Illuminate\Session\Middleware\StartSession:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#31 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
#30 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#29 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#28 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:66
#27 Illuminate\Cookie\Middleware\EncryptCookies:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#26 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#25 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#24 Illuminate\Pipeline\Pipeline:then in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Router.php:684
#23 Illuminate\Routing\Router:runRouteWithinStack in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Router.php:659
#22 Illuminate\Routing\Router:runRoute in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Router.php:625
#21 Illuminate\Routing\Router:dispatchToRoute in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Router.php:614
#20 Illuminate\Routing\Router:dispatch in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
#19 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#18 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/fideloper/proxy/src/TrustProxies.php:57
#17 Fideloper\Proxy\TrustProxies:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#15 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:31
#14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#12 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:31
#11 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#9 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
#8 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#6 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:62
#5 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:151
#4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#3 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#2 Illuminate\Pipeline\Pipeline:then in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /home/vagrant/code/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in /home/vagrant/code/public/index.php:55

This is my config/database.php

<?php

return [
    
    /*
    |--------------------------------------------------------------------------
    | Default Database Connection Name
    |--------------------------------------------------------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all database work. Of course
    | you may use many connections at once using the Database library.
    |
    */
    
    'default' => env('DB_CONNECTION', 'mysql'),
    
    /*
    |--------------------------------------------------------------------------
    | Database Connections
    |--------------------------------------------------------------------------
    |
    | Here are each of the database connections setup for your application.
    | Of course, examples of configuring each database platform that is
    | supported by Laravel is shown below to make development simple.
    |
    |
    | All database work in Laravel is done through the PHP PDO facilities
    | so make sure you have the driver for your particular database of
    | choice installed on your machine before you begin development.
    |
    */
    
    'connections' => [
        
        'sqlite' => [
            'driver'   => 'sqlite',
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix'   => '',
        ],
        
        'mysql' => [
            'driver'      => 'mysql',
            'host'        => env('DB_HOST', '127.0.0.1'),
            'port'        => env('DB_PORT', '3306'),
            'database'    => env('DB_DATABASE', 'forge'),
            'username'    => env('DB_USERNAME', 'forge'),
            'password'    => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
        ],
        
        'pgsql' => [
            'driver'   => 'pgsql',
            'host'     => env('DB_HOST', '127.0.0.1'),
            'port'     => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
            'schema'   => 'public',
            'sslmode'  => 'prefer',
        ],
        
        'sqlsrv' => [
            'driver'   => 'sqlsrv',
            'host'     => env('DB_HOST', 'localhost'),
            'port'     => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
        ],
    ],
    
    /*
    |--------------------------------------------------------------------------
    | Migration Repository Table
    |--------------------------------------------------------------------------
    |
    | This table keeps track of all the migrations that have already run for
    | your application. Using this information, we can determine which of
    | the migrations on disk haven't actually been run in the database.
    |
    */
    
    'migrations' => 'migrations',
    
    /*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer set of commands than a typical key-value systems
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */
    
    'redis' => [
        
        'client' => 'predis',
        
        'default' => [
            'host'     => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port'     => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

        'laravel-visits' => [
            'host'     => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port'     => env('REDIS_PORT', 6379),
            'database' => 15,
        ],
    ],

];

This is my config/visits.php:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Counters periods
    |--------------------------------------------------------------------------
    |
    | Set time in days for each periods counter , you can leave it blank if you like
    |
    */
    'periods' => [

        'day',
        'week',
        'month',
        'year',
    ],

    /*
    |--------------------------------------------------------------------------
    | Redis prefix
    |--------------------------------------------------------------------------
    */
    'redis_keys_prefix' =>  'visits',

    /*
    |--------------------------------------------------------------------------
    | Remember ip for x seconds of time
    |--------------------------------------------------------------------------
    |
    | Prevent counts duplication by remembering each ip has visited the page for x seconds.
    | Visits from same ip will be counted after ip expire
    |
    */
    'remember_ip' => 15 * 60,

    /*
    |--------------------------------------------------------------------------
    | Always make fresh top/low lists
    |--------------------------------------------------------------------------
    */
    'always_fresh' => false,

    /*
    |--------------------------------------------------------------------------
    | Redis Database Connection Name
    |--------------------------------------------------------------------------
    |
    | When using "redis" you may specify a
    | connection that should be used to manage your database storage. This should
    | correspond to a connection in your database configuration options.
    |
    */
    'connection' => 'laravel-visits',

    /*
    |--------------------------------------------------------------------------
    | Ignore Crawlers
    |--------------------------------------------------------------------------
    |
    | Doesn't count crawlers visits
    |
    */
    'ignore_crawlers' => true,

];

And this is the line I'm using to store the visit:

        $item->visits()->seconds(30)->increment();

I already did:

vagrant@local:~/code$ php artisan cache:clear
Application cache cleared!
vagrant@local:~/code$ php artisan config:clear
Configuration cache cleared!

Anything I could do to get this working?

Install error with the actual Laravel Version (7.3)

I have install the new Laravel Framework (7.3)
After this: composer require awssat/laravel-visits

with following result:

Using version ^2.2 for awssat/laravel-visits
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for awssat/laravel-visits ^2.2 -> satisfiable by awssat/laravel-visits[2.2.0].
- Conclusion: remove laravel/framework v7.3.0
- Conclusion: don't install laravel/framework v7.3.0
- awssat/laravel-visits 2.2.0 requires illuminate/support ~5.5.0 || ~5.6.0 || ~5.7.0 || ~5.8.0 || ^6.0 -> satisfiable by illuminate/support[5.5.x-dev, 5.6.x-dev, 5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.2, v6.18.3, v6.2.0, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0].
- don't install illuminate/support 5.5.x-dev|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.16|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.17|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.28|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.33|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.34|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.35|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.36|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.37|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.39|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.40|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.41|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.43|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.5.44|don't install laravel/framework v7.3.0
- don't install illuminate/support 5.6.x-dev|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.10|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.11|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.12|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.13|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.14|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.15|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.16|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.17|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.19|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.20|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.21|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.22|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.23|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.24|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.25|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.26|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.27|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.28|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.29|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.3|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.30|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.31|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.32|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.33|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.34|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.35|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.36|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.37|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.38|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.39|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.4|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.5|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.6|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.7|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.8|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.6.9|don't install laravel/framework v7.3.0
- don't install illuminate/support 5.7.17|don't install laravel/framework v7.3.0
- don't install illuminate/support 5.7.18|don't install laravel/framework v7.3.0
- don't install illuminate/support 5.7.19|don't install laravel/framework v7.3.0
- don't install illuminate/support 5.7.x-dev|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.10|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.11|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.15|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.20|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.21|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.22|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.23|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.26|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.27|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.28|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.3|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.4|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.5|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.6|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.7|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.8|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.7.9|don't install laravel/framework v7.3.0
- don't install illuminate/support 5.8.x-dev|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.11|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.12|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.14|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.15|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.17|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.18|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.19|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.20|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.22|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.24|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.27|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.28|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.29|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.3|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.30|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.31|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.32|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.33|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.34|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.35|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.36|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.4|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.8|don't install laravel/framework v7.3.0
- don't install illuminate/support v5.8.9|don't install laravel/framework v7.3.0
- don't install illuminate/support 6.x-dev|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.0.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.0.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.0.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.0.3|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.0.4|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.1.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.10.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.11.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.12.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.13.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.13.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.14.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.15.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.15.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.16.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.17.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.17.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.18.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.18.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.18.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.18.3|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.2.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.3.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.4.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.5.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.5.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.5.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.6.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.6.1|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.6.2|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.7.0|don't install laravel/framework v7.3.0
- don't install illuminate/support v6.8.0|don't install laravel/framework v7.3.0
- Installation request for laravel/framework (locked at v7.3.0, required as ^7.0) -> satisfiable by laravel/framework[v7.3.0].

Installation failed, reverting ./composer.json to its original content.

With greetings
Olaf

Count returns empty array

When calling count, $aa = visits($post)->top(10); print_r($aa); die();, im getting Illuminate\Support\Collection Object ( [items:protected] => Array ( ) ) . But inside visits table I see 98 rows of data.

Filtering on Top/Lowest visited items per model

This is an amazing package , love it !
Is there any way for us to do filtering first before getting top 10 visited items by models ?
Because in many of the use case , we have to retrieve top 10 visited items by the attributes of models .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.