首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Laravel Auditing的表中审计新的自定义数据?

如何在Laravel Auditing的表中审计新的自定义数据?
EN

Stack Overflow用户
提问于 2019-09-02 10:27:59
回答 1查看 1.2K关注 0票数 2

我希望将新数据存储在Laravel Auditing日志中,并在Laravel Auditing使用的自动日志中注册新字段。我正在尝试在Laravel Auditing的表中添加一个新字段,以便在审计完成时可以记录自定义数据。我正在使用一个几乎全新的Laravel 5.8.31安装。

我正在将新数据添加到audits表的存储中。我正在修改迁移文件2019_08_26_083436_create_audits_table.php中的表字段,以添加一个新的自定义字段。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Schema::create('audits', function (Blueprint $table) {
            $table->increments('id');
            $table->string('user_type')->nullable();
            $table->unsignedBigInteger('user_id')->nullable();
            $table->string('event');
            $table->morphs('auditable');
            $table->text('old_values')->nullable();
            $table->text('new_values')->nullable();
            $table->text('url')->nullable();
            $table->ipAddress('ip_address')->nullable();
            $table->string('user_agent')->nullable();
            $table->string('tags')->nullable();
            $table->timestamps();
            $table->text('custom')->nullable(); <--- Like this one
            $table->index(['user_id', 'user_type']);
        });

我已经修改了这个resolve函数,试图在新的字段中存储一些内容,但它没有。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\My-project\vendor\owen-it\laravel-auditing\src\Audit.php

 public function resolveData(): array
    {
        $morphPrefix = Config::get('audit.user.morph_prefix', 'user');

        // Metadata
        $this->data = [
            'audit_id'         => $this->id,
            'audit_event'      => $this->event,
            'audit_url'        => $this->url,
            'audit_ip_address' => $this->ip_address,
            'audit_user_agent' => $this->user_agent,
            'audit_tags'       => $this->tags,
            'audit_created_at' => $this->serializeDate($this->created_at),
            'audit_updated_at' => $this->serializeDate($this->updated_at),
            'user_id'          => $this->getAttribute($morphPrefix.'_id'),
            'user_type'        => $this->getAttribute($morphPrefix.'_type'),
            'custom'        => 'Custom Value', <--- Some new value
        ];

它应该在'custom'字段中存储'Custom Value',但是它没有存储任何内容。我可能看错了函数,或者这可能不是审计新的自定义数据的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-28 17:33:17

我使用的是laravel/framework: 8.0 & owen-it/laravel-auditing: ^10.0.0

通过将以下函数添加到任何implements Auditable的模型以扩展$data数组(source)来覆盖审计的transformAudit()方法。

在文件的顶部:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use Illuminate\Support\Arr;

在您的模型定义中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function transformAudit(array $data): array
{
    Arr::set($data, 'custom',  'Custom Value');

    return $data;
}

一般来说,由于各种原因,您不希望编辑/vendor/文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57755360

复制
相关文章
如何在MySQL数据库中创建新表
[IF NOT EXISTS]主要是用于判定新建的表是否存在 engine需要指定存储引擎。可以使用任何存储引擎,如:InnoDB,MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER。如果不明确声明存储引擎,MySQL将默认使用InnoDB。 column_list较为复杂,为指定表的列表。字段的列用逗号(,)分隔。 column_list的语法如下:
用户7639835
2021/08/26
10K0
详解如何在Laravel中增加自定义全局函数
http://www.php.cn/php-weizijiaocheng-383928.html
全栈程序员站长
2021/10/27
2.9K0
真实案例:数据库审计在入侵行为审计中的作用
做为企业IT应用系统的基础,数据库系统的安全至关重要,它承载了企业运营的关键数据,是企业最核心的IT资产。在数据库安全的日常管理中,内部人员的违规操作和外部黑客对系统的入侵是其所面临的主要安全风险。而数据库审计在数据库安全管理中的重要性不言而喻,下面让我们通过陕西省某大学一则真实的案例来体会数据库审计在入侵行为审计中的作用。 1 事件起因 2015年1月15日16:50,安恒信息的技术工程师接到客户电话:发现业务系统可能被“拖库”,需要协助客户对越权拖库行为进行调查! 17:50,技术工程师到达客户现场的时
安恒信息
2018/04/11
3.3K0
真实案例:数据库审计在入侵行为审计中的作用
【资讯】审计界已经开始考虑如何在审计工作中利用大数据
审计界已经开始考虑如何在审计工作中利用大数据,是否需要投入巨资购买尖端数据分析工具,以期极大地扩展外部审计师对企业账簿和记录的挖掘能力。 但是,在向下一个审计时代推进的过程中,我们却遭遇了日益复杂的监管和法律规定,这有可能导致转型进程停滞不前。 从未来的审计视角来看,上市公司应该赋予审计师更大的访问权限,不再局限于交易样本,而是扩展至全部的总分类账和数据库。审计服务公司Confirmation.com的总裁布赖恩˙福克斯(Brian Fox)说:“借助这些工具,
小莹莹
2018/04/19
6760
如何在 linux中安装 Lynis审计工具
Lynis 还附带一些审计配置文件,该文件确定或说明应如何执行安全审计。配置文件位于 /etc/lynis 目录中。
用户7639835
2021/12/03
7190
如何在CentOS 7上编写自定义系统审计规则
Linux审计系统创建审计跟踪,这是一种跟踪系统上各种信息的方法。它可以记录大量数据,如事件类型,日期和时间,用户ID,系统调用,进程,使用的文件,SELinux上下文和敏感度级别。它可以跟踪文件是否已被访问,编辑或执行。它甚至可以跟踪文件属性的更改。它能够记录系统调用的使用情况,用户执行的命令,登录尝试失败以及许多其他事件。默认情况下,审计系统仅记录日志中的少数事件,例如登录的用户,使用sudo的用户以及与SELinux相关的消息。它使用审计规则来监视特定事件并创建相关的日志条目。可以创建审计规则。
小皇帝James
2018/10/29
4.3K0
Excel技术:如何在一个工作表中筛选并获取另一工作表中的数据
问题:需要整理一个有数千条数据的列表,Excel可以很方便地搜索并显示需要的条目,然而,想把经过提炼的结果列表移到一个新的电子表格中,不知道有什么好方法?
fanjy
2022/11/16
18.8K0
Excel技术:如何在一个工作表中筛选并获取另一工作表中的数据
hive删除表和表中的数据
hive删除表和表中的数据,以及按分区删除数据 hive删除表: drop table table_name; hive删除表中数据: truncate table table_name; hive按分区删除数据: alter table table_name drop partition (partition_name='分区名')
机器学习和大数据挖掘
2019/07/01
8.5K0
如何使用GOLDENGATE构建数据库的审计表之一
GOLDENGATE版本是11.2.1.0.5和12.2.0.1.1,使用2个版本主要说明12c与11g变化.
徐靖
2020/08/05
1.9K0
如何使用GOLDENGATE构建数据库的审计表之一
Oracle 20c 不再支持特性:传统审计不支持 统一审计(Unified Auditing)成主流
在Oracle 20c 中,传统审计(Traditional Auditing)不再支持,统一审计(Unified Auditing)成为主流。
数据和云01
2020/03/19
9180
laravel 中数据验证
相关验证参考文档:https://blog.csdn.net/qq_35641923/article/details/79174555
句小芒
2022/12/29
1.2K0
laravel引入自定义的函数
虽然laravel的函数已经很丰富,但有时我们也需要自定义一些函数,可以将这些函数封装到app/helpers.php文件中
章鱼喵
2019/03/20
1K0
laravel引入自定义的函数
Laravel 中的 redis
作为数据库使用,有两个REDIS_CLIENT可选,默认是phpredis(php的redis扩展),可选predis(纯php的三方库),两者区别,详见:https://www.cnblogs.com/afeige/p/14385588.html
崔哥
2023/01/01
5380
点击加载更多

相似问题

使用数据表进行审计与使用单独的审计表进行审计

10

在审计表中传递新/旧参数?

14

数据视图C#中的审计表

20

DbContext中的表审计

10

简单的sql数据审计日志表

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文