我的项目中有一个日志功能,可跟踪几个不同模型的所有更改。比如,只要用户或管理员编辑帐户。或者当用户创建新记录时。所有这些操作都记录在日志表中。
我希望在调用保存新记录时,日志模型在beforeSave操作中自行检索模型名称和操作名称。我现在从控制器动作调用它来进行保存,如下所示:
$this->Log->save(array(
'user'=>$this->Auth->user('id'),
'model'=>$this->name,
'action'=>$this->action));
我希望能够将其缩短为:
$this->Log->save();
答案 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/ 实施并不困难。