morphTo('entity'); } /** * Get the parent comment this is in reply to (if existing). */ public function parent(): BelongsTo { return $this->belongsTo(Comment::class, 'parent_id', 'local_id', 'parent') ->where('entity_type', '=', $this->entity_type) ->where('entity_id', '=', $this->entity_id); } /** * Check if a comment has been updated since creation. */ public function isUpdated(): bool { return $this->updated_at->timestamp > $this->created_at->timestamp; } /** * Get created date as a relative diff. */ public function getCreatedAttribute(): string { return $this->created_at->diffForHumans(); } /** * Get updated date as a relative diff. */ public function getUpdatedAttribute(): string { return $this->updated_at->diffForHumans(); } public function logDescriptor(): string { return "Comment #{$this->local_id} (ID: {$this->id}) for {$this->entity_type} (ID: {$this->entity_id})"; } public function safeHtml(): string { return HtmlContentFilter::removeScriptsFromHtmlString($this->html ?? ''); } }