框架监听事件

那位兄弟可以帮忙详细讲解一下监听事件,就是CMS后台的操作记录???
已邀请:

安正超

赞同来自: FiveSay hellocc

你可以在模型上加事情以生成操作日志,下面以我自己的项目举例:

我的所有监听放在app/listeners.php中:
<?php

if (App::environment() != 'production') {
//记录SQL
Event::listen('illuminate.query', function($sql, $param)
{
    Log::info($sql . ", with[" . join(',', $param) ."]");
}); 
}

// ------------ 日志 ----------------------------
if (Request::is('*admin/*')) {

/** ------------ 用户 ----------------**/
//创建用户
User::created(function($user){
    AdminLog::log($user->id, '创建用户('.$user->email.')');
});

//编辑用户
User::updated(function($user){
    AdminLog::log($user->id, '编辑用户('.$user->email.')');
});

//删除用户的时候同时删除账号绑定
User::deleted(function($user){
    SNSAccount::where('user_id', $user->id)->delete();
    AdminLog::log($user->id, '删除用户('.$user->email.')');
});


/** ------------ 用户组 ----------------**/
//创建用户组
UserGroup::created(function($group){
    AdminLog::log($group->id, '创建用户组('.$group->name.')');
});

//编辑用户组
UserGroup::updated(function($group){
    AdminLog::log($group->id, '编辑用户组('.$group->name.')');
});

//删除用户组时,该组下的用户默认变成普通用户:0
UserGroup::deleted(function($group){
    User::where('group_id', $group->id)->update(array('group_id' => 0));
    AdminLog::log($group->id, '删除用户组('.$group->name.')');
});
}

AdminLog::log是我在AdminLog里写的一个方法

更多模型事件请参考:
http://v4.golaravel.com/docs/4 ... vents

要回复问题请先登录注册