无效的用户解析程序,可调用或用户解析程序FQCN预期错误[Laravel Auditing 4.1]
我使用的是Laravel 5.4和Laravel Auditing 4.1。我想记录变量模型的价格变化,我安装了Auditing 4.1软件包。看看我的代码 config/audit.php无效的用户解析程序,可调用或用户解析程序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
'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名称空间