我正在使用这个包在 laravel 中进行活动日志记录, 我可以从控制器进行日志记录,但是我想使用 Model 来进行。
但是,它不存储主题 ID、类型和原因 ID、类型。我可以将它从控制器存储为
activity()
->causedBy($userModel)
->performedOn($someContentModel)
->log('edited');
如何从模型中做到这一点?建议表示赞赏。
我正在使用这个包在 laravel 中进行活动日志记录, 我可以从控制器进行日志记录,但是我想使用 Model 来进行。
但是,它不存储主题 ID、类型和原因 ID、类型。我可以将它从控制器存储为
activity()
->causedBy($userModel)
->performedOn($someContentModel)
->log('edited');
如何从模型中做到这一点?建议表示赞赏。
好吧。现在我得到了你的问题。如果你想在模态中表现。下面是我的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 |
+----+----------+-----------------------------------------------------------------+------------+--------------+-----------+-------------+-------------------------------------+---------------------+---------------------+