Laravel Rewind - это мощный и эффективный пакет версий для ваших моделей Eloquent, созданный Джаредом Кэнноном. В этом пакете хранится комбинация частичных различий и полных снимков данных модели. Перемотка автоматически определит кратчайший путь между текущей версией, доступными снимками и вашей целью:
// Previous title: 'Old Title'
$post->title = 'New Title';
$post->save();
// Title goes back to 'Old Title'
Rewind::rewind($post);
$post->title = 'Rewind is Awesome!';
$post->save();
Чтобы включить отслеживание версии на модели, вам просто потребуется Rewindable типаж на модели:
use AvocetShores\LaravelRewind\Concerns\Rewindable;
class Post extends Model
{
use Rewindable;
}
Основные особенности
- Перемотка к конкретной версии
- Перемотка вперед одной или нескольких версий
- Перемещение модели в определенную версию
- Безопасность потоков для предотвращения перезаписи модели
- Исключение атрибутов из версий
- Создание атрибутов из определенной версии
- Клонирование модели в определенной версии
- И многое другое...
Для получения более подробной информации посетите репозиторий laravel-rewind на GitHub и ознакомьтесь с его обширной документацией и примерами. Вы можете установить этот пакет с помощью Composer с помощью следующей команды:
composer require avocet-shores/laravel-rewind
php artisan vendor:publish --provider="AvocetShores\LaravelRewind\LaravelRewindServiceProvider"
php artisan migrate