OwenIt \ Auditing \ Exceptions \ AuditingException使用owen-it / laravel-auditing实现无效的UserResolver实现

时间:2018-02-06 13:10:58

标签: php laravel laravel-5

我正在使用owen-it / laravel-auditing来记录产品价格变化的历史。但是在更新价格时我遇到了错误。

  

OwenIt \ Auditing \ Exceptions \ AuditingException无效   UserResolver实现

价格确实已更新,但历史记录未在数据库中更新

Products.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use OwenIt\Auditing\Contracts\Auditable;
use OwenIt\Auditing\Contracts\UserResolver;

class Products extends Model implements Auditable, UserResolver
{
    use \OwenIt\Auditing\Auditable;

    protected $table = 'products';
    protected $fillable = ['name','price','season','category','description','stock','image'];

    protected $auditInclude = [
        'name',
        'price',
    ];

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


}

2 个答案:

答案 0 :(得分:1)

从我所看到的情况来看,@ Faiez正在使用审核包的版本4.x5.x,与新版{{3}相比,它会以不同方式注册User解析器}版本,这是@btl正在回答的问题。

您必须使用以下内容更新audit.php配置文件,以使其正常工作:

return [
    // ...
    'user' = [
        // ...
        'resolver' => App\Products::class,
        // ...
    ],
    // ...
];

但是,我建议你将User解析器移动到另一个类(也许是User模型?),因为将它放在那里是没有意义的。 Products模型。

如有疑问,请查看6.x

答案 1 :(得分:0)

您需要在config/audit.php文件中设置解析程序类:

'resolver' => [
    'user'       => App\Products::class,
    'ip_address' => OwenIt\Auditing\Resolvers\IpAddressResolver::class,
    'user_agent' => OwenIt\Auditing\Resolvers\UserAgentResolver::class,
    'url'        => OwenIt\Auditing\Resolvers\UrlResolver::class,
],