我的项目中你好我使用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;
}
但它不起作用。
答案 0 :(得分:0)
好的,我找到了解决这个问题的方法:
只是使用:
whereId
或find
或faindOrFail
例如:
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);