如何在Laravel中使用VentureCraft /可修改版?

时间:2016-04-20 10:43:44

标签: laravel revisionable

我想知道如何在CRUD应用程序中使用VentureCraft/revisionable并获取历史记录

Ex:用户每天都需要增加里程并编辑里程......在我的视图中(revision.blade.php)我想获取已添加和编辑的历史记录我试过但我不知道如何进入下一步?

这是模型

class Mileage extends Model
{
    use \Venturecraft\Revisionable\RevisionableTrait;
    protected $guarded = [];
}

这是路线

Route::get('/history', function () {
    $mileage = \App\Mileage::all();
    $history = $mileage->revisionHistory;
    return view('revision',compact('history'));
});

我不知道用于查看的代码????

里程有user_id,日期,里程我想要这样显示

Ex:用户...... A ...已经为......添加里程....价值是......里程......

如果他们编辑我想要像这样的用户显示...... A ...有更新里程.....日期......价值是......里程......到...里程......我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

在显示历史记录之前。首先,可修订库假定在您的Mileage模型中调用用户模型的关系方法 user()因为milage表中的FK是user_id。您还需要将以下代码添加到用户模型和里程模型中。

public function identifiableName(){
    return $this->name;
}

在您的视图中,您需要像这样遍历历史数组。

@foreach($history as $h )
     <li>{{ $h->userResponsible()->first_name }} has updated milage  {{ $h->fieldName() }} from {{ $h->oldValue() }} to {{ $h->newValue() }}</li>
@endforeach

答案 1 :(得分:0)

Route::get('/history', function () {
    $mileage = \App\Mileage::all();
    return view('revision',compact('mileage'));
});

现在在blade文件中

  @foreach($mileage->revisionHistory as $history )
    <p class="history">
      {{ $history->created_at->diffForHumans() }}, {{ $history->userResponsible()->name }} changed
      <strong>{{ $history->fieldName() }}</strong> from
      <code>{{ $history->oldValue() }}</code> to <code>{{ $history->newValue() }}</code>
    </p>
  @endforeach

现在,如果您需要controller或其他任何地方的历史记录,则必须致电使用revisionHistory特征的model RevisionableTrait个实例