Skip to content

Commit c5ee012

Browse files
authored
Merge pull request #735 from spatie/issue-733
do not call fresh() if retrieved event is processed
2 parents e895bde + 990c675 commit c5ee012

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

src/Traits/DetectsChanges.php

+7-3
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,13 @@ public function attributeValuesToBeLogged(string $processingEvent): array
9191
}
9292

9393
$properties['attributes'] = static::logChanges(
94-
$this->exists
95-
? $this->fresh() ?? $this
96-
: $this
94+
$processingEvent == 'retrieved'
95+
? $this
96+
: (
97+
$this->exists
98+
? $this->fresh() ?? $this
99+
: $this
100+
)
97101
);
98102

99103
if (static::eventsToBeRecorded()->contains('updated') && $processingEvent == 'updated') {

tests/LogsActivityTest.php

+16
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Support\Collection;
88
use Spatie\Activitylog\Models\Activity;
99
use Spatie\Activitylog\Test\Models\Article;
10+
use Spatie\Activitylog\Test\Models\Issue733;
1011
use Spatie\Activitylog\Test\Models\User;
1112
use Spatie\Activitylog\Traits\LogsActivity;
1213

@@ -423,6 +424,21 @@ public function it_will_submit_a_log_with_json_changes()
423424
$this->assertSame($expectedChanges, $changes);
424425
}
425426

427+
/** @test */
428+
public function it_will_log_the_retrieval_of_the_model()
429+
{
430+
$article = Issue733::create(['name' => 'my name']);
431+
432+
$retrieved = Issue733::whereKey($article->getKey())->first();
433+
$this->assertTrue($article->is($retrieved));
434+
435+
$activity = $this->getLastActivity();
436+
437+
$this->assertInstanceOf(get_class($article), $activity->subject);
438+
$this->assertTrue($article->is($activity->subject));
439+
$this->assertEquals('retrieved', $activity->description);
440+
}
441+
426442
public function loginWithFakeUser()
427443
{
428444
$user = new $this->user();

tests/Models/Issue733.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Spatie\Activitylog\Test\Models;
4+
5+
use Spatie\Activitylog\Traits\LogsActivity;
6+
7+
class Issue733 extends Article
8+
{
9+
use LogsActivity;
10+
11+
protected static $recordEvents = [
12+
'retrieved',
13+
];
14+
15+
protected static $submitEmptyLogs = false;
16+
protected static $logAttributes = ['name'];
17+
public static $logOnlyDirty = false;
18+
}

0 commit comments

Comments
 (0)