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

2 番目の列 {{ $revision->revisionable_id }} は、たまたま変更されたユーザー レコードの主キーです。そのユーザー レコードのメール アドレスまたは first_name/last_name を返したいと思います。私はこれにかなり慣れていないので、正しい方向にプッシュすることができます!

ありがとう!

4

2 に答える 2

1

You can access the model that given revision relates to by accessing the revisionable relation of that revision. In your case, in order to display the email property of related model, you could do the following:

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

変数名からrevisionable_type&revisionable_id多対多のポリモーフィック関係を使用していると思います。それに基づいて、Revisionモデルで次のUserような関係を定義する必要があります。

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

したがって、このユーザーに関連するすべてのリビジョンを使用できます$revision->users。これは配列を返します。私が思うように、このオブジェクトに関連するレコードが 1 つしかないことが確実な場合。$revision->users->first()->emailまたはユーザー名などを使用できます..

Laravel ドキュメント

于 2016-12-25T08:13:41.893 に答える