Laravel VentureCraft /可修改用数据库返回名称记录

时间:2016-07-09 15:04:10

标签: php laravel revision-history revisionable

我的项目中你好我使用VentureCraft /可修改https://github.com/VentureCraft/revisionable这是记录数据库中记录更改历史的补充。一切正常,但当我在页面上返回历史记录时,脚本会以id的形式返回结果。这是我的表“products”products_table,这是表“revisions”revisions_table此表连接到表:文章,用户和类别。现在历史变化如下:

  

“用户1将名称文章从2更改为1”

我希望历史变化看起来像:

  

“用户JACK将名称从SHOES更改为BALL”

我尝试使用此link

带文件Revisionable.php的方法identifiableName()如下所示:

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

在模型product.php中我添加了:

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

或者这个:

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

但它不起作用。

2 个答案:

答案 0 :(得分:0)

好的,我找到了解决这个问题的方法: 只是使用: whereIdfindfaindOrFail 例如:

article::whereId( $hist->old_value )->first()->article_name

article::find( $hist->old_value )->article_name

article::findOrFail( $hist->old_value )->article_name

其中article:name是文章表格中的名称列。

答案 1 :(得分:0)

您可以使用

$history->userResponsible()->first_name

如文档所述

@foreach($resource->revisionHistory as $history)
  @if($history->key == 'created_at' && !$history->old_value)
    <li>{{ $history->userResponsible()->first_name }} created this resource at {{ $history->newValue() }}</li>
  @else
    <li>{{ $history->userResponsible()->first_name }} changed {{ $history->fieldName() }} from {{ $history->oldValue() }} to {{ $history->newValue() }}</li>
  @endif
@endforeach

或者如果您想将其用作响应API,则可以操纵响应以获取它们之间的关系

$response = $question->revisionHistory->map(function($history) {
            return ['history' => $history, 'users' => $history->userResponsible()];
        });
return response()->json($response);