首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用欧文-it/laravel审计的OwenIt \审核\异常\ AuditingException无效的UserResolver实现

使用欧文-it/laravel审计的OwenIt \审核\异常\ AuditingException无效的UserResolver实现
EN

Stack Overflow用户
提问于 2018-02-06 13:10:58
回答 2查看 2.1K关注 0票数 1

我使用欧文-it/拉拉-审计来记录产品价格变化的历史。但是我在更新价格时出错了。

OwenIt \审核\异常\ AuditingException无效的UserResolver实现

价格确实会更新,但是数据库中没有更新历史记录吗?

Products.php

代码语言:javascript
复制
<?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;
    }


}
EN

回答 2

Stack Overflow用户

发布于 2018-02-21 23:10:09

据我所见,@Faiez使用的是审计包的4.x5.x版本,与新的6.x版本相比,后者注册User解析器的方式不同,而新的6.x版本正是@btl所响应的。

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

代码语言:javascript
复制
return [
    // ...
    'user' = [
        // ...
        'resolver' => App\Products::class,
        // ...
    ],
    // ...
];

但是,我建议您将User解析器移动到一个不同的类(可能是User模型?),因为在Products模型中这样做没有多大意义。

当有疑问时,检查文档

票数 1
EN

Stack Overflow用户

发布于 2018-02-06 13:19:12

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

代码语言:javascript
复制
'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,
],
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48643871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档