1

我正在使用这个包在 laravel 中进行活动日志记录, 我可以从控制器进行日志记录,但是我想使用 Model 来进行。

我从官方文档中阅读了这些有用的信息

但是,它不存储主题 ID、类型和原因 ID、类型。我可以将它从控制器存储为

activity()
   ->causedBy($userModel)
   ->performedOn($someContentModel)
   ->log('edited');

如何从模型中做到这一点?建议表示赞赏。

4

1 回答 1

1

好吧。现在我得到了你的问题。如果你想在模态中表现。下面是我的Business模型类中的示例代码。

 protected static function boot()
    {
        //to log what field update
        static::updating(function ($business) {
            $changes = $business->isDirty() ? $business->getDirty() : false;
            if($changes)
            {
                foreach($changes as $attr => $value)
                {
                    activity()
                        ->performedOn($business)
                        ->causedBy(auth()->user())
                        ->withProperties(['business_name' => $business->name, 'which field updated' => $business->getDirty()])
                        ->log('Business Field <span class="text-green">Updated</span>  - '.$business->name);

                }
            }
        });
    }

对于您必须手动添加的主题信息,以下是我如何将其存储在控制器中的示例代码。我希望你能得到一些参考。

activity() 
    ->performedOn($business)
    ->causedBy(auth()->user())
    ->withProperties(['business_name' => $business->name)
    ->log('Business <span class="text-green">Updated</span>  - '.$business->name);

DB记录如下:

数据库记录

+----+----------+-----------------------------------------------------------------+------------+--------------+-----------+-------------+-------------------------------------+---------------------+---------------------+
| id | log_name | description                                                     | subject_id | subject_type | causer_id | causer_type | properties                          | created_at          | updated_at          |
+----+----------+-----------------------------------------------------------------+------------+--------------+-----------+-------------+-------------------------------------+---------------------+---------------------+
|  1 | default  | Business <span class="text-green">Updated</span> - Companies 10 |         10 | App\Business |         1 | App\User    | {"business_name":"Best Restaurant"} | 2017-08-04 14:58:06 | 2017-08-04 14:58:06 |
+----+----------+-----------------------------------------------------------------+------------+--------------+-----------+-------------+-------------------------------------+---------------------+---------------------+
于 2018-01-25T12:30:32.720 回答