paxha/laravel-loggable

一个简单的laravel日志记录包

v2.0.0 2021-06-26 14:20 UTC

README

Build Status StyleCI Total Downloads Latest Stable Version License

paxha/laravel-loggable包提供了易于使用的函数,用于记录应用中可记录模型的所有CRUD操作。它还可以自动记录模型事件。所有日志都将存储在logs表中。

安装

使用composer将包添加到您的Laravel应用中

composer require paxha/laravel-loggable

入门

执行Artisan命令以运行迁移。

php artisan migrate

用法

要开始记录CRUD操作,只需在模型上使用特性即可。

use Loggable\Traits\Loggable;

class Product extends Model
{
    use Loggable;

    ...

模型日志

存储在数据库中的日志类似于以下字符串

"由- 用户名创建了一个新的产品1"

要覆盖此加粗的名称字符串,您可以在模型中编写此方法。

默认情况下,它将获取名称

use Loggable\Traits\Loggable;

class Product extends Model
{
    use HasLogs;

    public function getActedUpon(){
        return $this->title;
    }
}

它可以是从您的可记录表中的任何列,如名称、标题、产品名称等。

您可以检索可记录模型日志

$product_logs = Product::first()->logs();
// return Array of first Product's logs

您可以通过使用此特性HasLogs来检索可认证模型日志

use Loggable\Traits\Loggable;

class User extends Model
{
    use HasLogs;

    ...
$user_logs = auth()->user()->logs();
// return Array of current authenticated User's logs

存储在数据库中的日志类似于以下字符串

用户日志

"由- 用户名创建了一个新的产品1"

要覆盖此加粗的用户名字符串,您可以在模型中编写此方法。

use Loggable\Traits\Loggable;

class User extends Model
{
    use HasLogs;

    public function getActor(){
        return $this->first_name." ".$this->last_name;
    }
}

默认情况下,它将获取名称

它可以是从您的认证表中的任何列,如名称、电子邮件、ID等。

在一个地方使用两个特性

如果您想在一个模型中使用这两个特性,您需要实现此代码片段以克服多重继承问题

 use Loggable\Traits\Loggable;
 
 class User extends Model
 {
     use Loggable, HasLogs {
             Loggable::logs insteadof HasLogs;
             HasLogs::logs as historyLogs;
         }
 }

您可以选择任何名称而不是historyLogs

$user_logs = auth()->user()->historyLogs();
// return Array of current authenticated User's logs

许可

这是一个开源的laravel库,在MIT许可证下发布。