Я использую пакет Spatie Laravel Activitylog и хочу регистрировать действия обратимого удаления, выполняемые над моими моделями. Однако у меня возникли проблемы с тем, чтобы журналы правильно фиксировали события удаления. Как лучше всего настроить это в Laravel?
Я попытался настроить журнал активности Spatie Laravel для регистрации событий мягкого удаления, используя наблюдателей моделей и добавляя в мои модели особенность Loggable. Я ожидал, что действия по обратимому удалению будут зафиксированы в журнале активности. Однако записи журнала не записывают действия по удалению должным образом.


У меня та же проблема, я думал использовать TapActivity() так:
' public function tapActivity(Activity $activity, string $eventName): void
{
if ($this->deleted_at !== null) {
$activity->description = "Order product has been deleted";
}
}'
в моем случае это работает, и не забудьте удалить ->dontSubmitEmptyLogs(), если вы его используете. И если вы пытаетесь получить действия для модели, соответствующие ее зависимостям, не забудьте получить их с помощью Trashed(), иначе вы задаетесь вопросом, почему у вас есть журналы, но вы не можете их отобразить (не спрашивайте меня, откуда я знаю ) :Д
Надеюсь, что это вам поможет!
$designationType = Designation::find($designationId);
if ($designationType) {
$designationType->delete();
Здесь мягкое удаление будет протоколироваться идеально, поскольку поиск напрямую вызывает красноречивый orm.
Observation::where('id', $id)->firstOrFail()->delete();
Здесь мне нужно использовать firstOrFail, если есть предложениеwhere, иначе удаление не регистрируется.