$this->primaryId(), 'previewed_type' => get_class(), ]; $result = $this->hasPreviewed($previewable); if ($result) { $preview = $previewable->previews()->where($arr)->first(); $preview->increment('num', 1); }else { $preview = new Preview($arr); $previewable->previews()->save($preview); } return $preview; } public function hasPreviewed(Previewable $previewable):bool { $preview = [ 'previewed_id' => $this->primaryId(), 'previewed_type' => get_class(), ]; $result = $previewable->previews()->where($preview)->count(); return $result; } //用户访问列表(所有服务) public function previews(): MorphMany { return $this->morphMany(Preview::class); } }