I'm currently trying to use Laravel Auditing v4.1, yes, I know it's end of support and due to legacy issues I can't use the newer one.
The issue is, there are two apps, that will be referencing the same audit table. The old app, was using the older version of Laravel Auditing where the column names are different to the version 4.1. So what I was trying to do is map the saving of the audit record referencing to the old column names.
Anyway, what I tried so far:
-
Using a custom model. Changed the
implementation
value underconfig/audit.php
to my own modelApp\Models\CustomAudit
namespace App\Models; use Illuminate\Database\Eloquent\Model; use OwenIt\Auditing\Audit as AuditTrait; use OwenIt\Auditing\Contracts\Audit as AuditContract; class CustomAudit extends Model implements AuditContract { use AuditTrait; /** * {@inheritdoc} */ protected $guarded = []; /** * {@inheritdoc} */ protected $casts = [ 'old_value' => 'json', 'new_value' => 'json', ]; /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = [ 'created_at', 'updated_at' ]; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'id', 'user_id', 'owner_type', 'owner_id', 'old_value', 'new_value', 'type', 'route', 'ip', ]; }
Notice that in this model, I'm using the old column names, but during submit, it says Unknown column old_values
that is because it's trying to use the new column names.
- Under the model class that I want to Audit, I called the function
transformAudit
and change the array keys on the fly before saving it to the database, which works. But is there a cleaner way to do it?
I tried looking for related issues online but what I only found was adding additional columns.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire