Почему функция изменений не возвращает изменения?

652/5000
Я использую в своем проекте Laravel 5 пакет https://github.com/spatie/laravel-activitylog в его версии 2.3. У меня есть страница, где я просматриваю список действий и пытаюсь получить изменения, но она возвращает пустой массив.

Это мой контроллер

public function history($id) {
$incidence = Incidence::find($id);
$activities = Activit::where('subject_id', $incidence->id)->get ();
return view('incidence.history', compact('activities'));
}

Это моя HTML-страница

@foreach ($activities as $activity)
<p> {{ $activity->created_at }} </p>
<p> {{ $activity->changes() }} </p>
@endforeach

И это вывод в браузере

Картина

Уточните, что я сделал 4 обновления для той же записи, которая, как я вижу, отражена в таблице activity_log базы данных, которая использует пакет. Но я не понимаю, почему расположение изменений не показано, как указано в документации сайта:

Вызов $ activity-> changes вернет этот массив:

[
'attributes' => [
'name' => 'updated name',
'text' => 'Lorum',
],
'old' => [
'name' => 'original name',
'text' => 'Lorum',
],
];

0

Решение

Так как он использует таблицу базы данных, я уверен, что это связано с тем, как Laravel позволяет связывать методы. Когда вы делаете $ activity-> changes (), он ожидает, что вы продолжите запрос. IE: $ activity-> changes () -> где (‘etc’, 1) -> get () или что-то подобное. Поэтому, вызывая $ activity-> changes (), вы просто отправляете частичный запрос в eloquent.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]