2010-11-22 38 views
0

我的项目中有一个日志功能,用于跟踪对几个不同模型的所有更改。假设,每当用户或管理员编辑一个帐户。或者当用户创建新记录时。所有这些操作都记录在日志表中。如何获取调用动作的模型和动作名称

我想让日志模型在调用保存新记录时在beforeSave动作中自行检索模型名称和动作名称。我现在把它从一个控制器动作使保存这样的:

$this->Log->save(array(
    'user'=>$this->Auth->user('id'), 
    'model'=>$this->name, 
    'action'=>$this->action)); 

我很想能够缩短它归结为:

$this->Log->save(); 

回答

1

我发现了alkerman的精彩LogableBehavior它的工作就像一个魅力。没有必要重新发明轮子。

0

我想我会倾向于要么写上app_controller如

saveLog() 的方法,其调用

$this->Log->save($uma_array)

或简化现有的构建做

$this->Log->save($this)

和解开的方法中的数据。

编辑:

当然,要做到这一点是使用teknoid的模式来使用的可观察行为的最好办法:http://nuts-and-bolts-of-cakephp.com/2009/08/10/observer-pattern-the-cakephp-way/ 这并不难实现。

+0

最好在Log模型中编写save()方法。 – bancer 2010-11-22 23:22:49

相关问题