我正在使用spatie的活动日志记录模型。问题是在为服务收费模型创建新日志时如何添加causer_id(user_id)。当前,在对Service Charge执行新活动时,causer_id和causer_type为空。
答案 0 :(得分:1)
public function tapActivity(Activity $activity, string $eventName)
{
$activity->causer_id = '$your variable';
}
答案 1 :(得分:0)
模型下可以添加tapActivity()
use Illuminate\Database\Eloquent\Model;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\Activitylog\Contracts\Activity;
class NewsItem extends Model
{
use LogsActivity;
public function tapActivity(Activity $activity, string $eventName)
{
$activity->description = "activity.logs.message.{$eventName}";
}
}
activity()
->causedBy($userModel)
->performedOn($someContentModel)
->log('edited');
$lastActivity = Activity::all()->last(); //returns the last logged activity
$lastActivity->causer; //returns the model that was passed to `causedBy`;
链接:https://spatie.be/docs/laravel-activitylog/v3/basic-usage/logging-activity#setting-a-causer
另一种方式是
use Spatie\Activitylog\Contracts\Activity;
activity()
->causedBy($userModel)
->performedOn($someContentModel)
->tap(function(Activity $activity) {
$activity->my_custom_field = 'my special value';
})
->log('edited');
$lastActivity = Activity::all()->last();
$lastActivity->my_custom_field; // returns 'my special value'