簡體   English   中英

在 Laravel Eloquent 中審計屬於關系

[英]Audit belongsTo relationship in Laravel Eloquent

我有一個經典的主細節關系模型“合同”和一個模型“合同線”。 在 Laravel 術語中:合約線與合約有一個屬於關系。 我想審計用戶對其合同所做的所有更改。 不僅是一般“合同”表中的更改,還有基礎“合同行”中的更改/添加/刪除。

我看過 owen-it 的laravel-auditing和 csinghdev 的cs-revisionable ,但我不確定他們是否支持這種審計。

任何幫助表示贊賞。

我通過使用laravel-auditing解決了我的問題,用合同的 id 標記我的 ContractLine(使用 generateTags)並向我的合同模型添加一個方法“getAllAudits”。 此方法將 Contract 審計及其基礎 ContractLine 審計串聯起來。 在我的審計演示中,我檢查每個審計的“auditable_type”字段,以區分合同審計和合同行審計。

仍然感覺有點hacky,本機解決方案會更好。

我可以代表Laravel 審計

確實可以審計多個表(即 Eloquent 模型)。

為此,您必須在ContractContractLine模型中實現Auditable接口。

基本上,類似於:

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;
use OwenIt\Auditing\Contracts\Auditable;

class Contract extends Model implements Auditable
{
    use \OwenIt\Auditing\Auditable;

    // ...
}

ContractLine模型應用相同的方法。

查看文檔的主要部分,其中解釋了所有內容,包括使用包時的常見問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM