gpt4 book ai didi

php - 检测模型的变化; php yii 框架

转载 作者:可可西里 更新时间:2023-11-01 13:39:05 24 4
gpt4 key购买 nike

我正在创建一个审计跟踪模块,我将把它放在一个更大的系统中;我创建了一个表来存储跟踪条目,作为“审核员”我想看到当前登录的用户,他/她所在的页面,他/她做了什么 Action ,以及发生了什么变化什么时候……

这些基本上是我想看到的;我的审计跟踪表如下所示:

用户|时间戳|模块名称|行动|旧值|新值(value)|说明

我基本上没有问题通过

Yii::app()->session['username'];

通过获取 Controller 的页面/模块和操作:

$this->module->getName();
$this->action->id;

我的问题在于将旧值更改为新值,即用户所做的编辑。我可以通过逐字复制变量并将其传递给我创建日志的函数来“嗅探”出他/她所做的编辑/更改。我如何动态执行此操作?

我有点想检测某个模型的特性或属性是否已更改,并查看进行了哪些更改,以便我可以获得详细日志...谢谢!抱歉,我真的很努力地解释这个。

最佳答案

在您想要观察的每个模型中,您可以编写一个 afterFind() 方法,将当前数据库属性存储到某个私有(private)变量中,例如_dbValues。然后在 beforeSave() 中验证当前属性与 _dbValues 中的属性,并在发生更改时创建审核记录。

完成此工作后,您可以更进一步并创建一个 behavior从中。您可以将私有(private)变量、afterFind()beforeSave() 方法放在那里。然后您可以将该行为附加到许多记录。

关于php - 检测模型的变化; php yii 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16684641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com