laravel观察者模型写入日志代码
xuexi 2025-04-04 08:04:32 发表在:PHP 查看数:102

ed为执行成功后,是过去式,ing是执行前,进行时

use Illuminate\Support\Facades\Storage;//文件存储
use Carbon\Carbon;//日期


 public function updated(Beipinbeijian_fenlei $beipinbeijian_fenlei): void
    {
        //
        // 获取当前日期时间(Carbon 实例)
         $now = Carbon::now(); 

        // 仅获取年月日(格式化为字符串)
        $date = Carbon::now()->toDateString(); // 2024-05-30
       Storage::put( '观察者模型.txt', $beipinbeijian_fenlei); // 文件存储保存日志,不仅是txt文件  
       Storage::append('备品备件/'.$date.'备品备件更新日志.txt', $beipinbeijian_fenlei);

    }
    //  更新前 ing  更新后加ed
    public function updating(Beipinbeijian_fenlei $beipinbeijian_fenlei): void
    {
        //
       // 获取旧数据(更新前的原始数据)
    $oldData = $beipinbeijian_fenlei->getOriginal();

    // 获取新数据(更新后的内存数据)
    $newData = $beipinbeijian_fenlei->getAttributes();

    // 生成时间戳(避免文件名重复)
    $timestamp = Carbon::now()->format('Ymd_His');

    // 确保目录存在
    Storage::makeDirectory('spare_parts_logs');

    // 构建日志内容
    $logContent = json_encode([
        'old' => $oldData,
        'new' => $newData,
        'changed_fields' => $beipinbeijian_fenlei->getDirty() // 仅获取被修改的字段
    ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

    // 写入文件(每次修改生成独立文件)
    Storage::put("备品备件更新日志/{$timestamp}_log.json", $logContent);

    }
最近访问时间:2025-04-30 06:28:03
知识库:340条鸣谢:TAY  备案号:蜀ICP备2024090044号