composer require spatie/laravel-activitylog 会报下面的错
[InvalidArgumentException]
Could not find package spatie/laravel-activitylog at any version matching y
在实际项目中,我们可能需要记录用户某些的行为,如登录、退出、发布文章等,使用 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('发帖成功');
我们看一下数据表,即可发现对应的数据已经录入。
3). 获取某个用户的记录
此扩展包是以 Eloquent 的方式数据查询操作,下面是例子:
use Spatie\Activitylog\Models\Activity;
...
// 使用 Eloquent 的方式进行查询
$data = Activity::where('causer_id', $user_id)->get();
3. 更多用法#
上文的「基础用法」已经能满足大部分的项目需求。除了上文介绍的基础用法,此拓展包还有以下高级用法:
- 定期清理过期数据;
- 通过 model 的事件驱动自动记录数据;
- 可通过
properties
记录自定义数据; - 可以查询记录用户的 changelog;
- 可通过
log_name
对数据进行分类;
这些用法大家可以查阅 官方文档 自行阅读,在这里不做过多描述。
以上。
本帖已被设为精华帖!