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
这是浏览器中的输出
澄清我对同一条记录进行了4次更新,我在使用该软件包的数据库的activity_log表中反映了该记录。但我不明白为什么没有按照网站的文档所示的方式显示更改的安排:
致电$ activity-&gt;更改将返回此数组:
[
'attributes' => [
'name' => 'updated name',
'text' => 'Lorum',
],
'old' => [
'name' => 'original name',
'text' => 'Lorum',
],
];
答案 0 :(得分:0)
由于它使用数据库表,我确定这与Laravel允许方法链接的方式有关。当你执行$ activity-&gt; changes()时,它希望你继续查询。 IE:$ activity-&gt; changes() - &gt; where(&#39; etc&#39;,1) - &gt; get()或类似的东西。因此,通过调用$ activity-&gt; changes(),您只需向eloquent发送部分查询。