操作日志记录:
日志表:
接下来需要在配置封装日志(方便其他模块直接调用)
------------------------------------------------------------------举例:注册功能添加日志 --------------------------------------------------------------------
try_catch方法抛异常
try_catch作用:1.如果在注册的时候他没有注册成功,正常来说提示就是注册失败,在这个时候日志里就会有一条对应注册失败错误日志
2.try里面写的是成功的数据,catch里面处理异常
使用事务:
beginTransaction()开启事务
rollBack()回滚事务
commit()提交事务
注册:日志记录代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | public function register(ManageUserRequest $request ) { $manage = [ 'password' => $request ->password, "username" => $request ->username, 'phone' => $request ->phone, 'role_id' => $request ->role_id, 'created_at' => date ( "Y-m-d H:i:s" ) ]; if (isset( $manage [ 'password' ]) && ! empty ( $manage [ 'password' ])) { $manage [ 'password' ] = Hash::make( $manage [ 'password' ]); } DB::beginTransaction(); try { if (ManageUserModel::query()->create( $manage )) { //记录日志:数据成功 $data = [ 'username' => \Illuminate\Support\Facades\Cache::get( 'username' ), 'created_at' => date ( "Y-m-d H:i:s" ), 'operation_desc' => '用户注册成功' , 'controller' => 'ManageUserController' , 'method' => 'register' , 'ip' => gethostbyname ( '' ) //获取ip地址 ]; $this ->saveLog( $data ); DB::commit(); return $this ->success( $manage , "用户注册成功" ); } else { //记录日志:数据失败 $data = [ 'username' => \Illuminate\Support\Facades\Cache::get( 'username' ), 'created_at' => date ( "Y-m-d H:i:s" ), 'operation_desc' => '用户注册失败' , 'controller' => 'ManageUserController' , 'method' => 'register' , 'ip' => gethostbyname ( '' ) //获取ip地址 ]; $this ->saveLog( $data ); return $this ->failed( "用户注册失败" ); } } catch (\Exception $e ) { DB::rollBack(); return $this ->failed( $e ->getMessage()); } } |
成功的秘诀,在永不改变既定的目的~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现