From 2ae1ed099f77ba68129cb15daacec17df1347ed1 Mon Sep 17 00:00:00 2001 From: "j.stein" Date: Tue, 4 Jan 2022 01:12:11 +0100 Subject: [PATCH] Sync with original attributes --- src/VirtualColumn.php | 2 ++ tests/VirtualColumnTest.php | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/VirtualColumn.php b/src/VirtualColumn.php index a8d263d..f7a6e3c 100644 --- a/src/VirtualColumn.php +++ b/src/VirtualColumn.php @@ -30,6 +30,7 @@ trait VirtualColumn foreach ($model->getAttribute(static::getDataColumn()) ?? [] as $key => $value) { $model->setAttribute($key, $value); + $model->syncOriginalAttribute($key); } $model->setAttribute(static::getDataColumn(), null); @@ -52,6 +53,7 @@ trait VirtualColumn ])); unset($model->attributes[$key]); + unset($model->original[$key]); } } diff --git a/tests/VirtualColumnTest.php b/tests/VirtualColumnTest.php index 1089539..8d17e7a 100644 --- a/tests/VirtualColumnTest.php +++ b/tests/VirtualColumnTest.php @@ -34,6 +34,7 @@ class VirtualColumnTest extends TestCase // Model has the correct structure when retrieved $model = MyModel::first(); $this->assertSame('bar', $model->foo); + $this->assertSame('bar', $model->getOriginal('foo')); $this->assertSame(null, $model->data); // Model can be updated @@ -43,7 +44,9 @@ class VirtualColumnTest extends TestCase ]); $this->assertSame('baz', $model->foo); + $this->assertSame('bar', $model->getOriginal('foo')); $this->assertSame('xyz', $model->abc); + $this->assertSame('xyz', $model->getOriginal('abc')); $this->assertSame(null, $model->data); // Model can be retrieved after update & is structure correctly