iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Laravel怎么使用Observer实现日志管理模块
  • 849
分享到

Laravel怎么使用Observer实现日志管理模块

2023-06-20 14:06:06 849人浏览 安东尼
摘要

这篇文章主要介绍“Laravel怎么使用Observer实现日志管理模块”,在日常操作中,相信很多人在Laravel怎么使用Observer实现日志管理模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Lar

这篇文章主要介绍“Laravel怎么使用Observer实现日志管理模块”,在日常操作中,相信很多人在Laravel怎么使用Observer实现日志管理模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel怎么使用Observer实现日志管理模块”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

写在前面:
这里实现日志管理写了两篇,第一篇是简单的模型增删改监听并记录日志。第二篇主要介绍的是通过导入文件进行批量数据处理无法很好的被监听处理到,这一部分的数据处理逻辑如何被记录下来。详细请看Laravel日志管理记录导入文件后的数据变化。

1、创建observer文件,我这里是要记录仓库库存模块的操作日志,所以执行下面的语句,会在app/Observers下面创建WarehouseInventoryObserver文件。

PHP artisan make:observer WarehouseInventoryObserver --model=WarehouseInventory

由于模型都是放在app/Models下面,所以要指定路径。

php artisan make:observer WarehouseInventoryObserver --model=Models/WarehouseInventory

在App\Providers\AppServiceProvider下面开启observer

public function boot()    {        WarehouseInventory::observe(WarehouseInventoryObserver::class);    }

2、监听该模块下的增删改操作,这里使用Repository当然也可以直接使用model。created、updated、deleted分别监听WarehouseInventory模型的新增、更新和删除的操作。

<?phpnamespace App\Observers;use App\Models\Warehouse;use App\Models\WarehouseInventory;use App\Repositories\ActionLogRepository;use Illuminate\Support\Arr;use Illuminate\Support\Facades\Auth;class WarehouseInventoryObserver{    protected $user_id;    protected $warehouse;    protected $actionLogRepository;    public function __construct(        Warehouse $warehouse,        ActionLogRepository $actionLogRepository    )    {        $this->user_id = Auth::user() ? Auth::user()->id : null;        $this->warehouse = $warehouse->pluck('name', 'id');        $this->actionLogRepository = $actionLogRepository;    }    //创建    public function created(WarehouseInventory $warehouseInventory)    {        if (!empty($this->user_id)) {            $attributes = $warehouseInventory->getAttributes();            $attributes = Arr::only($attributes, ['warehouse_id', 'seller_sku', 'quantity', 'box']);            $warehouse = $this->warehouse->get($attributes['warehouse_id']);            //拼接数据            $data = [                'module' => 'warehouse_inventory',                'user_id' => $this->user_id,                'type' => 'create',                'content' => [                    'warehouse' => $warehouse,                    'seller_sku' => $attributes['seller_sku'],                    'original_quantity' => 0,                    'current_quantity' => $attributes['quantity'],                    'box' => $attributes['box']                ]            ];            $this->actionLogRepository->makeModel()->create($data);        }    }    //更新    public function updated(WarehouseInventory $warehouseInventory)    {        if (!empty($this->user_id)) {            $original = $warehouseInventory->getOriginal();            $dirty = $warehouseInventory->getDirty();            $dirty = Arr::except($dirty, ['remark', 'updated_at']);            if (count($dirty)) {                if (Arr::has($dirty, 'warehouse_id')) {                    $warehouse = $this->warehouse->get($dirty['warehouse_id']);                } else {                    $warehouse = $this->warehouse->get($original['warehouse_id']);                }                //拼接数据                $data = [                    'module' => 'warehouse_inventory',                    'user_id' => $this->user_id,                    'type' => 'update',                    'content' => [                        'warehouse' => $warehouse,                        'seller_sku' => $original['seller_sku'],                        'original_quantity' => $original['quantity'],                        'current_quantity' => $dirty['quantity'],                        'box' => (Arr::has($dirty, 'box')) ? $dirty['box'] : $original['box']                    ]                ];                $this->actionLogRepository->makeModel()->create($data);            }        }    }    //删除    public function deleted(WarehouseInventory $warehouseInventory)    {        if (!empty($this->user_id)) {            $original = $warehouseInventory->getOriginal();            $warehouse = $this->warehouse->get($original['warehouse_id']);            //拼接数据            $data = [                'module' => 'warehouse_inventory',                'user_id' => $this->user_id,                'type' => 'delete',                'content' => [                    'warehouse' => $warehouse,                    'seller_sku' => $original['seller_sku'],                    'original_quantity' => $original['quantity'],                    'current_quantity' => 0,                    'box' => $original['box']                ]            ];            $this->actionLogRepository->makeModel()->create($data);        }    }}

到此,关于“Laravel怎么使用Observer实现日志管理模块”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Laravel怎么使用Observer实现日志管理模块

本文链接: https://www.lsjlt.com/news/297763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Laravel怎么使用Observer实现日志管理模块
    这篇文章主要介绍“Laravel怎么使用Observer实现日志管理模块”,在日常操作中,相信很多人在Laravel怎么使用Observer实现日志管理模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Lar...
    99+
    2023-06-20
  • Python日志模块logging怎么使用
    这篇“Python日志模块logging怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python日志模块loggi...
    99+
    2023-06-30
  • Python日志管理模块Loguru的用法小结
    目录1、loguru的安装1.1、pip安装1.2、pycharm下安装2、loguru的简单使用2.1、使用非常简单2.2、add()函数2.3、创建记录日志文件2.3.1、创建日...
    99+
    2023-02-15
    Python 日志管理模块 Loguru Loguru使用 Python日志模块Loguru使用
  • python logging日志模块怎么用
    这篇文章主要讲解了“python logging日志模块怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python logging日志模块怎么用”吧!1.日志简介说...
    99+
    2023-06-29
  • 怎么在Spring 5.0中使用log4j2实现日志管理
    本篇文章为大家展示了怎么在Spring 5.0中使用log4j2实现日志管理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。先引入log4j 2的三个jar包log4j-api-2.10.0.jarl...
    99+
    2023-05-30
    spring log4j
  • java底层JDK Logging日志模块怎么处理
    这篇文章主要介绍“java底层JDK Logging日志模块怎么处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java底层JDK Logging日志模块怎么处理”文章能帮助大...
    99+
    2023-06-29
  • Pytest使用logging模块写日志的实例详解
    logging是python语言中的一个日志模块,专门用来写日志的,日志级别通常分为debug、info、warning、error、critical几个级别,一般情况下,默认的日志...
    99+
    2022-12-08
    Pytest logging模块 Pytest logging模块写日志 Pytest日志
  • Python 日志模块详解及怎么应用
    本篇文章为大家展示了Python 日志模块详解及怎么应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。日志概述百度百科的日志概述:Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志...
    99+
    2023-06-02
  • 怎么使用Vuex模块化实现待办事项的状态管理
    这篇文章主要介绍“怎么使用Vuex模块化实现待办事项的状态管理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Vuex模块化实现待办事项的状态管理”文章能帮助大家解决问题。效果:待办事项中的一...
    99+
    2023-07-04
  • 怎么使用Kubernetes进行日志管理和聚合
    Kubernetes提供了多种方式来进行日志管理和聚合,下面是一些常用的方法: 使用Kubernetes的Logging和Moni...
    99+
    2024-04-02
  • 怎么使用C++ cmake实现日志类
    本文小编为大家详细介绍“怎么使用C++ cmake实现日志类”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用C++ cmake实现日志类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。L...
    99+
    2023-07-05
  • Bash中如何使用Java API实现高效的日志管理?
    在现代软件开发中,日志管理是非常重要的一环。通过对日志的记录和分析,我们可以更好地理解应用程序的行为并及时发现潜在的问题。在Bash脚本中,我们可以使用Java API来实现高效的日志管理。 Java API是Java编程语言提供的一套库...
    99+
    2023-10-27
    api django bash
  • 怎么在Vue中使用Element处理用户管理模块
    今天就跟大家聊聊有关怎么在Vue中使用Element处理用户管理模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、权限管理模块的设计我们知道,权限管理一般都会涉及到用户、组织机构...
    99+
    2023-06-15
  • SpringBoot利用AOP实现一个日志管理详解
    目录1. 需求2. 新建一张日志表3. 写相应的Controller层4.Service接口层5.Service实现6.Mapper接口7.Mapper.xml(我用的是Mybati...
    99+
    2024-04-02
  • Python中怎么利用logging模块记录程序日志
    本篇文章给大家分享的是有关Python中怎么利用logging模块记录程序日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先来看logging简单的使用方法。这一看到此图中...
    99+
    2023-06-04
  • Python利用zhdate模块实现农历日期处理
    目录简介安装主要功能源码简介 zhdate模块统计从1900年到2100年的农历月份数据代码,支持农历和公历之间的转化,并且支持日期差额运算。 安装 pip install zhda...
    99+
    2024-04-02
  • 美国服务器Linux日志管理工具怎么使用
    在美国服务器上使用Linux日志管理工具可以帮助您监视和分析系统日志以及应用程序日志,以便及时发现问题并进行故障排除。以下是一些常用...
    99+
    2024-04-20
    美国服务器 Linux
  • python内置模块之怎么实现上下文管理contextlib
    这篇文章主要介绍“python内置模块之怎么实现上下文管理contextlib”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python内置模块之怎么实现上下文管理contextlib”文章能帮助大...
    99+
    2023-07-02
  • 使用LogAnalyzer怎么实现一个日志系统
    使用LogAnalyzer怎么实现一个日志系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、部署LAMP环境1、安装CentOS操作系统,...
    99+
    2024-04-02
  • laravel怎么使用中间件记录用户请求日志
    这篇文章主要讲解了“laravel怎么使用中间件记录用户请求日志”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel怎么使用中间件记录用户请求日志”吧!一、创建中间件可以使用命令创建...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作