php - 获取特定模型实例的活动日志(使用 spatie/laravel-activitylog)
问题描述
我正在使用spatie/laravel activityLog 包。
activitylog 插入代码是
$user = Auth::user();
$inventory = Inventory::where('id','=','1')->first();
$properties = ['action' => 'view'];
activity()
->performedOn($inventory)
->causedBy($user)
->withProperties($properties)
->log('add inventory')
->subject('test subject');
如何获取特定模型实例的活动日志?
下面是我的桌子
解决方案
这工作正常
1) 回答
$inventory = new Inventory();
Activity::where('subject_type',get_class($inventory))->get();
2) 回答
$inventory = new Inventory();
Activity::forSubject($inventory)->get();
如果您尝试第二个答案,那么
您刚刚在此路径vendor/spatie/laravel-activitylog/src/models/Activity.php中编辑了以下函数
public function scopeForSubject(Builder $query, Model $subject): Builder
{
return $query
->where('subject_type', $subject->getMorphClass())
->orWhere('subject_id', $subject->getKey());
}
推荐阅读
- express - TypeError:res.render 不是函数,同时尝试使用 express 和 ejs 在服务器端使用视图引擎
- javascript - 从子组件调用父方法(Vue.js)
- angular - 使用 ionic 或 angular9 在 Base64 中编码/调整海量图像的大小(不使用 Javascript)
- nginx - uWSGI 和 Flask:在请求之间将对象保存在内存中
- python - 使用 Python 从共享邮箱 (O365) 发送电子邮件
- selenium - 选择器 - 查找该部分的第二个链接,然后是带有文本的部分包含
- javascript - 两个 JsFiddles,完全相同的代码,一个有效,一个无效。有谁知道这个问题?
- javascript - 如何防止选择添加到选择元素的新选项?
- kotlin - null 的类型是什么?
- postgresql - Postgresql 竞争条件