【问题标题】:Laravel Auditing update event not workingLaravel 审核更新事件不起作用
【发布时间】:2021-10-13 09:36:33
【问题描述】:

Laravel 更新审核在我的 laravel eloquent 应用程序中的少数模型中不起作用。除了用户模型。以下是audit.php 事件

'events' => [
    'created',
    'updated',
    'deleted',
    'restored',
],

 'strict' => false,
 'timestamps' => true,
 'console' => true,

我的模型设置如下

<?php

namespace App\Models;

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

use Illuminate\Support\Arr;

class Order extends Model implements Auditable
    use \OwenIt\Auditing\Auditable;
    use HasFactory;



    protected $fillable = [
        'order_date',              
        'cancel_date',             
        'comment',
        'remark',
        'customer_auto_id',       
        'customer',   
   ];             

    public function transformAudit(array $data): array
    {
        Arr::set($data, 'recode_auto_id',  $this->attributes['id']);

        return $data;
    }

    public function customer()
    {
        return $this->hasOne(User::class, 'id', 'customer_auto_id');
    }
}

创建和删除在审核时工作正常,但更新不是审核。请告诉我解决方案。

【问题讨论】:

  • 您确定要在更新时更改模型实例的任何字段吗?如果实例保持不变,则不会触发更新。
  • 是的,我确定我已经更新了。当我更改用户列时,它会记录审核,但不会记录其他模型。

标签: laravel laravel-8 laravel-7 laravel-auditing


【解决方案1】:

我找到了解决方案。在 laravel 上,可以有两种方法来更新 recode

方法 01.

$Object = Order::where('id', $order)
          ->update([
                    'name'=>$request->name,
                    'phone'=>$request->phone,
                  ]);

方法02。

$Object           = Order::find($id);
$Object ['name']  =  $request->name;
$Object ['phone'] =  $request->phone;
$Object ->save();

起初,我尝试使用方法 01 审核日志。该方法不会登录更新,但会记录创建和删除的日志。因此我尝试了方法 02,它成功记录了创建、更新和删除事件。我个人认为方法 02 可以找到列,因为它检索每一列,然后保存更改,以便 laravel 可以识别更改以命中日志。使用方法02解决问题。

$Object           = Order::find($id);
$Object ['name']  =  $request->name;
$Object ['phone'] =  $request->phone;
$Object ->save();

【讨论】:

  • 超级个人推荐/意见:不要$object['index'],如果是模型,请$object-&gt;index,因为你使用的IDE会100%跟踪它......不会混淆任何人它是 100% 的对象。
猜你喜欢
  • 2015-01-18
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2021-09-03
相关资源
最近更新 更多