laravel观察者模型写入日志代码
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