【问题标题】:Why the changes function does not return the changes?为什么更改函​​数不返回更改?
【发布时间】:2018-06-21 02:33:12
【问题描述】:

652/5000 我在我的 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->更改会返回这个数组:

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

【问题讨论】:

    标签: php laravel laravel-5 eloquent activitylog


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-08
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多