2

使用 Laravel 和 Revisionable Package 来跟踪更改。在我看来,我正在填充我的表格:

@foreach($revisions as $revision)
      @if($revision->key == 'created_at' && !$revision->old_value)
      <tr>
        <td>{{ $revision->revisionable_type }}</td>
        <td>{{ $revision->revisionable_id }}</td>
        <td width="50">{{ $revision->userResponsible()->first_name }}</td>
        <td Width="50"></td>
        <td></td>
        <td>{{ $revision->newValue() }}</td>
        <td width="150">{{ $revision->created_at }}</td>
      </tr>  
      @else
      <tr>
        <td>{{ $revision->revisionable_type }}</td>
        <td>{{ $revision->revisionable_id }}</td>
        <td width="50">{{ $revision->userResponsible()->first_name }}</td>
        <td width="50">{{ $revision->fieldName() }}</td>
        <td>{{ $revision->oldValue() }}</td>
        <td>{{ $revision->newValue() }}</td>
        <td width="150">{{ $revision->updated_at }}</td>
      </tr>  
      @endif 
@endforeach

第二列 {{ $revision->revisionable_id }} 恰好是被修改的用户记录的主键。我想返回该用户记录的电子邮件地址或名字/姓氏。我在这方面还很陌生,可以朝正确的方向推动!

谢谢!

4

2 回答 2

1

您可以通过访问该修订的可修订关系来访问与给定修订相关的模型。在您的情况下,为了显示相关模型的电子邮件属性,您可以执行以下操作:

<td>{{ $revision->revisionable->email }}</td>
于 2016-12-25T06:17:37.707 回答
0

从变量名中revisionable_typerevisionable_id我假设您正在使用多对多多态关系。基于此,您必须在Revision模型中定义一个关系,User如下所示:

public function users()
    {
        return $this->morphedByMany('App\User', 'taggable');
    }

因此您可以使用与此用户相关的所有修订,$revision->users这将返回数组,如果您确定只有一条与此对象相关的记录,就像我认为的那样。您可以使用$revision->users->first()->email或用户名等。

Laravel 文档

于 2016-12-25T08:13:41.893 回答