tait/model-logging

该包的最新版本(dev-master)没有提供许可信息。

dev-master 2014-11-08 19:54 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:22:09 UTC


README

关于

此包为模型上的日志操作提供了一些方便的默认设置。

例如,如果您有一个管理员系统,其中多个用户可以标记订单为待处理、批准或取消,该包将帮助存储对模型所做的更改以及哪个用户进行了更改。

此包假设您正在使用 Eloquent 作为您的 ORM。

示例

首先,运行迁移以创建 "model_logging" 表

php artisan migrate --package=tait/model-logging

将 LoggableTrait 添加到您想要记录操作的模型上

<?php

use Tait\ModelLogging\LoggableTrait;

class Order extends Eloquent
{
    use LoggableTrait;

    ...
}

以下示例展示了如何添加一条日志,表示订单已被标记为已发货。

$order = Order::find(1);
$order->status = 'dispatched';
$order->save();

$order->saveLog([
    'action' => 'Marked as ' . $order->status
]);

saveLog 方法为保存内容 ID、内容类型和用户 ID 提供了一些合理的默认设置。所有设置都可以通过设置相应的键来覆盖。以下示例显示了您可以在 saveLog 方法上设置的选项。

$order->saveLog([
    'user_id' => 34,
    'content_id' => 19,
    'content_type' => 'AnotherModel',
    'action' => 'Made a change to AnotherModel',
    'description' => 'A more detailed optional description of the change made to the model',
]);

以下示例展示了如何获取所有日志以及分页日志。

$order = Order::find(1);

// Get all logs
$all_logs = $order->getAllLogs();

// Get paginated logs
$paginated_logs = $order->getPaginatedLogs();