无效的用户解析程序,可调用或用户解析程序FQCN预期错误[Laravel Auditing 4.1]

无效的用户解析程序,可调用或用户解析程序FQCN预期错误[Laravel Auditing 4.1],laravel,laravel-5.4,laravel-auditing,Laravel,Laravel 5.4,Laravel Auditing,我使用的是Laravel 5.4和Laravel Auditing 4.1。我想记录变量模型的价格变化,我安装了Auditing 4.1软件包。看看我的代码 config/audit.php 'implementation' => OwenIt\Auditing\Models\Audit::class, 'user' => [ 'primary_key' => 'id', 'foreign_key' => 'variant_id', 'model

我使用的是Laravel 5.4和Laravel Auditing 4.1。我想记录变量模型的价格变化,我安装了Auditing 4.1软件包。看看我的代码

config/audit.php

'implementation' => OwenIt\Auditing\Models\Audit::class,

'user' => [
    'primary_key' => 'id',
    'foreign_key' => 'variant_id',
    'model'       => App\Variant::class,
    'resolver'    => App\Variant::class,
],
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;

class Variant extends BaseModel implements AuditableContract{

   use Auditable;
 --------Code here----------------
}
app/Models/Variant.php

'implementation' => OwenIt\Auditing\Models\Audit::class,

'user' => [
    'primary_key' => 'id',
    'foreign_key' => 'variant_id',
    'model'       => App\Variant::class,
    'resolver'    => App\Variant::class,
],
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;

class Variant extends BaseModel implements AuditableContract{

   use Auditable;
 --------Code here----------------
}
当我尝试将数据插入数据库时,使用此代码会出现此错误

 UnexpectedValueException
 Invalid User resolver, callable or UserResolver FQCN expected

如何修复此错误并将更改记录到
audits
表中?

发生这种情况是因为在
config/audit.php
中配置用于处理用户解析的类(
App\Variant::class
)没有实现
OwenIt\Auditing\Contracts\UserResolver
解析

因此,如果您真的想使用
App\Variant::class
作为用户解析器类,它应该是这样的:

<?php
namespace App;

use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;

class Variant extends BaseModel implements AuditableContract, UserResolver
{
    use Auditable;

    public static function resolveId()
    {
        return Auth::check() ? Auth::user()->getAuthIdentifier() : null;
    }

    // More code here
}

发生这种情况是因为您在
config/audit.php
中配置用于处理用户解析的类(
App\Variant::class
)没有实现
OwenIt\Auditing\Contracts\UserResolver
解析

因此,如果您真的想使用
App\Variant::class
作为用户解析器类,它应该是这样的:

<?php
namespace App;

use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;

class Variant extends BaseModel implements AuditableContract, UserResolver
{
    use Auditable;

    public static function resolveId()
    {
        return Auth::check() ? Auth::user()->getAuthIdentifier() : null;
    }

    // More code here
}

您的
App\User
模型是否实现了
OwenIt\Auditing\Contracts\UserResolver
接口?@Chay22当我实现此操作时,将出现一个错误“interface”App\Models\OwenIt\Auditing\Contracts\UserResolver“not found”。我只需要在变量表中记录更改。我该怎么做?@VinodVT因为PHP名称打包你的
App\User
model实现了
OwenIt\Auditing\Contracts\UserResolver
interface吗?@Chay22当我实现这个时,一个错误“interface”App\Models\OwenIt\Auditing\Contracts\UserResolver“not found”。我只需要在变量表中记录更改。我该怎么做?@VinodVT因为PHP名称空间