Skip to content

Commit 75e6366

Browse files
committed
Add ability to reach into model properties
1 parent ed0a1e4 commit 75e6366

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/ActivityLogger.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,7 @@ protected function replacePlaceholders(string $description, ActivityContract $ac
213213
return $match;
214214
}
215215

216-
$attributeValue = $attributeValue->toArray();
217-
218-
return Arr::get($attributeValue, $propertyName, $match);
216+
return data_get($attributeValue, $propertyName, $match);
219217
}, $description);
220218
}
221219

tests/ActivityLoggerTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,23 @@
227227
expect($this->getLastActivity()->description)->toEqual($expectedDescription);
228228
});
229229

230+
it('can replace the placeholders deeply', function () {
231+
$article = Article::create(['name' => 'article name']);
232+
233+
$article->foo = new stdClass();
234+
$article->foo->bar = new stdClass();
235+
$article->foo->bar->baz = 'zal';
236+
237+
activity()
238+
->performedOn($article)
239+
->withProperties(['key' => 'value', 'key2' => ['subkey' => 'subvalue']])
240+
->log('Subject name is :subject.name, deeply nested property is :subject.foo.bar.baz');
241+
242+
$expectedDescription = 'Subject name is article name, deeply nested property is zal';
243+
244+
expect($this->getLastActivity()->description)->toEqual($expectedDescription);
245+
});
246+
230247
it('can log an activity with event', function () {
231248
$article = Article::create(['name' => 'article name']);
232249
activity()

0 commit comments

Comments
 (0)