欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

【扩展推荐】Laravel-activitylog 记录用户行为扩展包 但是 php 5.6 版本 好像不适合 但里面的内容可以看一看

 composer require spatie/laravel-activitylog 会报下面的错

  [InvalidArgumentException]
  Could not find package spatie/laravel-activitylog at any version matching y
  our PHP version 5.6.12.0                           版本不匹配

看看 /node-admin/9219 它是以前的版本 ,具体它实现在功能可以在本页面看看
 
说明#

在实际项目中,我们可能需要记录用户某些的行为,如登录、退出、发布文章等,使用 spatie/laravel-activitylog 扩展包可以非常方便快捷的完成此逻辑。

1. 安装#

1). 使用 composer 安装:

// L5.1 运行:
composer require spatie/laravel-activitylog:1.3.1

// L5.1 之后的版本运行:
composer require spatie/laravel-activitylog

2). 修改 config/app 文件,在 providers 数组内追加如下内容:

'providers' => [
    ...
    Spatie\Activitylog\ActivitylogServiceProvider::class,
],

3). 生成数据表和配置文件

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="migrations"
php artisan migrate 

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="config"

生成的配置文件保持默认设置即可,一般项目都能通用。

2. 基础用法#

1). 直接记录当前登录用户的行为

activity()->log('登录成功');
activity()->log('发帖成功');

2). 记录某个指定用户的行为

$user = User::find(31);
activity()->causedBy($user)->log('登录成功');
activity()->causedBy($user)->log('发帖成功');

我们看一下数据表,即可发现对应的数据已经录入。

file

3). 获取某个用户的记录

此扩展包是以 Eloquent 的方式数据查询操作,下面是例子:

use Spatie\Activitylog\Models\Activity;

...

// 使用 Eloquent 的方式进行查询
$data = Activity::where('causer_id', $user_id)->get();

3. 更多用法#

上文的「基础用法」已经能满足大部分的项目需求。除了上文介绍的基础用法,此拓展包还有以下高级用法:

  1. 定期清理过期数据;
  2. 通过 model 的事件驱动自动记录数据;
  3. 可通过 properties 记录自定义数据;
  4. 可以查询记录用户的 changelog;
  5. 可通过 log_name 对数据进行分类;

这些用法大家可以查阅 官方文档 自行阅读,在这里不做过多描述。

以上。

 本帖已被设为精华帖!
 
本帖由 zhuzhichao 于 7个月前 加精
回复数量: 3
  • zhuzhichao MOD Lalala Demacian !
     ⋅ 8个月前

    好东西,准备在项目中用!

  • awh521
    awh521 没有程序解决不了的问题,只有自己想不到的方法
     ⋅ 8个月前

    一直想要这个,感谢分享

  • uicosp
     ⋅ 8个月前

    试了一下,发现 log_name 和 description 都是 varchar 类型,这样数据库查询时效率会不会很低?感觉可以改成 int,然后再配置文件里面写常量做映射。

来自  https://laravel-china.org/topics/2813/extended-recommendation-laravel-activitylog-record-user-behavi...


https://github.com/spatie/laravel-activitylog

普通分类: