Displaying 'New' and 'Old' Changes from Spatie Activity Log in an InfoList
Hello everyone! π
I'm using the Spatie Activity Log package in my Laravel project to track model changes. The package logs the 'new' and 'old' values of the changed attributes in the
properties
field, and this data is stored as a collection.
I'm facing an issue with displaying these values in a user-friendly way in my InfoList component. I want to compare the 'old' and 'new' values side by side.
Here's what I have so far:
- I've set up the Activity Log, and it's working fine; changes are being logged correctly.
- I can access the properties
field in my activity log model, which gives me a collection containing 'new' and 'old' values.
properties= ({"attributes":{"title":"Pizza cheese sticks","price":4.5,"dine_in_price":0},"old":{"title":"Pizza cheese stick","price":4.5,"dine_in_price":0}})
My question is: How can I efficiently parse and display this data in an InfoList? I'm looking for a way to iterate over the 'attributes' and 'old' arrays within the properties
collection and present them in a tabular or side-by-side format for easy comparison.
Any suggestions or examples of how you've tackled a similar situation would be greatly appreciated!
Thank you in advance!Solution:Jump to solution
I found solution myself it was really simple
KeyValueEntry::make('properties.attributes')
->label('New Value')
->columnSpan(2),...
2 Replies
With a view? Or have a look at the Awocodes activity log package and also I belive there is a new clean version that is paid for too.
Solution
I found solution myself it was really simple
KeyValueEntry::make('properties.attributes')
->label('New Value')
->columnSpan(2),
KeyValueEntry::make('properties.old')
->label('Old Value')
->visible(fn (Activity $record) => $record->properties->has('old'))
->columnSpan(2),