我使用欧文-it/拉拉-审计来记录产品价格变化的历史。但是我在更新价格时出错了。
OwenIt \审核\异常\ 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;
}
}发布于 2018-02-21 23:10:09
据我所见,@Faiez使用的是审计包的4.x或5.x版本,与新的6.x版本相比,后者注册User解析器的方式不同,而新的6.x版本正是@btl所响应的。
您必须使用以下内容更新您的audit.php配置文件,才能使其工作:
return [
// ...
'user' = [
// ...
'resolver' => App\Products::class,
// ...
],
// ...
];但是,我建议您将User解析器移动到一个不同的类(可能是User模型?),因为在Products模型中这样做没有多大意义。
当有疑问时,检查文档
发布于 2018-02-06 13:19:12
您需要在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,
],https://stackoverflow.com/questions/48643871
复制相似问题