打开一次网址,访问次数就加一次。如果同一操作端连续打开,就不应该计算进去的。这就涉及到一个鉴别。已经有第三方包处理这种场景了,我们安装使用它就好了。
github: https://github.com/awssat/laravel-visits
doc: https://awssat.com/opensource/laravel-visits/3_installation.html#configurations
操作一波
composer require awssat/laravel-visits
php artisan vendor:publish --provider="Awssat\Visits\VisitsServiceProvider" --tag=config
安装 laravel-visits 包,并生成配置文件。这里我们使用 redis 来作为数据处理工具。在 config/database.php 中添加配置:
'laravel-visits' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 3, // anything from 1 to 15, except 0 (or what is set in default)
],
配置好了之后,我们就可以开始使用了。一种方式是直接使用。
visits($model,'tag1')->increment()
但是,也可以在 model 中注册 visits 方法如下。
# 在想使用的 model 中加入下边的方法
public function visits()
{
return visits($this);
}
# 然后在使用的的地方使用模型实力的visists 方法搞定。
$model->visits()->increment();