rs-sliske / change-recorder by rs-sliske

records changes made to laravel models
57
3
2
Package Data
Maintainer Username: rs-sliske
Maintainer Contact: robert@sliske.uk (Robert Moore)
Package Create Date: 2016-07-14
Package Last Update: 2020-01-02
Language: PHP
License: MIT
Last Refreshed: 2024-11-18 03:04:22
Package Statistics
Total Downloads: 57
Monthly Downloads: 5
Daily Downloads: 0
Total Stars: 3
Total Watchers: 2
Total Forks: 0
Total Open Issues: 2

StyleCI Build Status

Records changes made to eloquent models (such as update/create/delete) and provides methods to check a models history

to install composer require rmoore/change-recorder

add RMoore\ChangeRecorder\ChangeRecorderServiceProvider::class to the providers array in config\app.php

run artisan migrate to create the database table

the add the trait RMoore\ChangeRecorder\RecordsChanges to your eloquent models.

this will now automatically record changes made

to view changes we have a few choices

1st we can call $model->changes which will return a collection of Change instances containing all the data that was stored about each change

2nd we can call $model->getHistory() which will return the same results as option 1

if you wish to find specific changes, you can pass the field name as a parameter to getHistory, or you can use magic methods. please note these will only return changes where this was the only field changed at that time. if you wish to perform a more in depth search please continue reading

1st we can call get history and pass the field we want as an arguement, eg $model->getHistory('name') will return the users name history

2th we can use magic methods which take the form of get{fieldName}History(), eg $model->getNameHistory() which will return the same results as option 3

for in depth searching (aka finding changes where other fields were changed at the same time), you can use the searchHistory methods.

1st option is to pass the field as an argument, eg $model->searchHistory('name')

2nd option is to use magic methods, eg $model->searchNameHistory()

3rd option is to pass a boolean as the 2nd parameter to getHistory, eg $model->getHistory('name', true) will return the same results as options 1 and 2