为什么更改功能不会返回更改?

时间:2018-01-11 17:13:52

标签: php laravel laravel-5.5 laravel-eloquent spatie

5000分之652 我在我的Laravel 5项目中使用的是其版本2.3中的包https://github.com/spatie/laravel-activitylog。我有一个页面,我在其中查看活动列表并尝试获取更改,但它返回一个空数组。

这是我的控制器

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

这是浏览器中的输出

Picture

澄清我对同一条记录进行了4次更新,我在使用该软件包的数据库的activity_log表中反映了该记录。但我不明白为什么没有按照网站的文档所示的方式显示更改的安排:

致电$ activity-&gt;更改将返回此数组:

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

1 个答案:

答案 0 :(得分:0)

由于它使用数据库表,我确定这与Laravel允许方法链接的方式有关。当你执行$ activity-&gt; changes()时,它希望你继续查询。 IE:$ activity-&gt; changes() - &gt; where(&#39; etc&#39;,1) - &gt; get()或类似的东西。因此,通过调用$ activity-&gt; changes(),您只需向eloquent发送部分查询。