#SQL
CREATE TABLE `log` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`action` varchar(50) NOT NULL DEFAULT '' COMMENT 'action',
`url` varchar(500) DEFAULT NULL COMMENT 'url',
`params` text COMMENT 'POST参数',
`usetime` float(11,8) DEFAULT NULL COMMENT '耗时秒,action处理错误,此值为0',
`return` text COMMENT '返回值,action处理错误,此值为空',
`create_time` int(11) DEFAULT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='访问日志';
public function beforeAction($action) {
$data = [
'params' => json_encode($this->params, 1),
'url' => Yii::$app->request->url,
'action' => $action->id,
'create_time' => time(),
];
$this->usetime = microtime(1);
Yii::$app->db->createCommand()->insert('log', $data)->execute();
$id = Yii::$app->db->getLastInsertID();
$this->logid = $id;
return parent::beforeAction($action);
}
public function afterAction($action, $result) {
if($this->logid){
$data = [
'usetime' => round(microtime(1) - $this->usetime, 3),
'return' => json_encode($result, 1)
];
Yii::$app->db->createCommand()->update('log', $data, ['id'=>$this->logid])->execute();
}
return parent::afterAction($action, $result);
}