我正在尝试为我们的应用程序创建日志记录界面。我需要通过应用程序跟踪数据库中何时发生更改。因此,当有人更新字段时,我需要在日志中插入一行,其中包含表,列原始值,列新值,时间戳和进行更改的用户。对我来说,这样做的逻辑方法是绑定到laravel中的DB类,因此每次调用它并使用更新/删除方法时,它都会运行我获取所需信息并将其插入日志的新方法。
我需要它在数据库级别工作我相信,因为它需要发生从DB或eloquent调用的更新/删除。
我该怎么做呢?
答案 0 :(得分:1)
Eloquent为您提供了一些不错的活动,甚至在文档中也是如此!谁知道你可以在那里找到这么多。 http://laravel.com/docs/eloquent#model-events
答案 1 :(得分:0)
您是否考虑过使用模型观察者(http://laravel.com/docs/eloquent#model-observers)观察所有更新和删除事件并将您的逻辑放在该观察者中,而不是尝试将某些内容附加到数据库图层上?
答案 2 :(得分:0)
经过搜索和反复试验,我按照以下方式完成了目标。
我创建了一个事件监听器,我将其放在/app/events/database.php中用于组织目的
使用以下
<?php
Event::listen('illuminate.query', function($query, $bindings, $time, $name)
{
// Code to log query goes here
});
然后我在/app/start/global.php中放入以下行
include(app_path().'/events/database.php');
现在使用DB或Eloquent捕获查询数据库的所有请求。