为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 多态关系与自定义键

Laravel 多态关系与自定义键

PHP
胡说叔叔 2021-06-18 16:10:00
在我的项目中,我正在处理多个数据库和一个中央数据库。我正在使用 spatie 的活动日志包将控制面板中完成的操作记录到所有这些数据库中。我在每个数据库(中央数据库除外)中都有带有自动递增主键的表项,以及另一个名为 hash 的索引,它是一种 uuid。哈希总是唯一的。现在,当我想记录操作时,我会遇到问题,因为它会保存 Item 的 ID,所以......在我的活动表中,我将获得两个 subject_id = 1 的记录,而一个活动发生在一个数据库和另一个数据库上的 Item在另一个,依此类推。如何在不更改相关模型上的 $primaryKey 的情况下更改集合变形以使用我的 uuid 列而不是 id?物品型号关系:public function activities(): MorphMany{    $this->morphMany(Activity::class, 'subject', 'subject_id', 'hash');}活动模型关系:public function subject(): MorphTo{    if (config('activitylog.subject_returns_soft_deleted_models')) {        return $this->morphTo()->withTrashed();    }    return $this->morphTo('activity_log', 'subject_type', 'subject_id', 'hash');}另外,我在 ActivityLogger 中发现:public function performedOn(Model $model){    $this->getActivity()->subject()->associate($model);    return $this;}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信