[扩展推荐] 使用 Laravel Visits 扩展包来统计任意模型的查看数
43

file

Bader Almutairi 的扩展包 Laravel Visits 是用来将计数器附加到任何模型以追踪带标签的访问。该扩展包提供的主要功能如下:

  • 模型项可以有多种类型的访问记录(使用标签)。
  • 它不仅限于一种 Model (像某些扩展仅允许 User 模型)。
  • 记录每个访问者而不是通过使用 IP 检测,因此即使刷新页面访问记录也不会重复(可以通过配置进行修改)。
  • 获得每个模型的最高或最低访问量。
  • 获得访问最多的国家 ...
  • 获得条目或模型的某个时期的访问数,比如一年中的一个月。

模型计数

模型计数的基本使用包括以下递增和递减方法:

visits($post)->increment();

// 一个以上
visits($post)->increment(10);

visits($post)->decrement();

// 一个以上
visits($post)->decrement(10);

// 每过去 30 秒,根据用户的 IP 进行递增
visits($post)->seconds(30)->increment()

获取数据

当你收集到模型的计数器数据后,你可以使用以下方法检索和过滤结果:

visits($post)->count();

visits($post)->period('day')->count();

// 使用模型类
visits('App\Post')->count();

如果你想要一个快速分析工具来追踪模型,你还可以收集其他有趣的数据,比如国家和推荐人:

visits($post)->countries();

// 访客的推荐人
visits($post)->refs();

国家功能的地理数据由 Torann/laravel-geoip 扩展包提供。

和 Eloquent 整合

你可以通过直接在 Eloquent 里定义一个 visits 方法来和 Eloquent 整合:

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

然后调用模型里的 visits 方法:

$post = Post::find(1);
$post->visits()->increment();
$post->visits()->count();

了解更多

要查看完整的描述文档、安装教程和源码,可以在 GitHub 上查看这个包 awssat/laravel-visits


Practice makes perfect.

原文地址:https://laravel-news.com/laravel-visits-...

译文地址:https://laravel-china.org/topics/14742/e...

本帖已被设为精华帖!
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 7
Summer

使用 redis 实现,按照页面查看数去重这个功能挺赞

4个月前
uax

统计频率是怎么计算的?比如24小时针对某一IP只统计一次?

4个月前
Destiny

😮哇塞,这个包很厉害,统计福利。

4个月前
hedeqiang

Summer 这个扩展包如何持久化记录数据? php artisan cache:clear 就会重置

3个月前
Summer

@hedeqiang

第一步:
file

第二步


    /*
    |--------------------------------------------------------------------------
    | 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',
3个月前
hedeqiang

@Summer 嗯嗯,已加入,多谢

3个月前
hedeqiang

@Summer 嗯嗯,已加入,多谢

3个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!