如何获取调用操作的模型和操作名称

时间:2010-11-22 15:37:36

标签: cakephp

我的项目中有一个日志功能,可跟踪几个不同模型的所有更改。比如,只要用户或管理员编辑帐户。或者当用户创建新记录时。所有这些操作都记录在日志表中。

我希望在调用保存新记录时,日志模型在beforeSave操作中自行检索模型名称和操作名称。我现在从控制器动作调用它来进行保存,如下所示:

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

我希望能够将其缩短为:

$this->Log->save();

2 个答案:

答案 0 :(得分:1)

我发现了烷烃人的精彩LogableBehavior,它就像一个魅力。无需重新发明轮子。

答案 1 :(得分: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/ 实施并不困难。