diff --git a/internal/repository/post_repo.go b/internal/repository/post_repo.go index 62185f2..b60fc37 100644 --- a/internal/repository/post_repo.go +++ b/internal/repository/post_repo.go @@ -37,7 +37,7 @@ func (r *PostRepo) FindByIDWithAuthor(id uint) (*model.Post, error) { err := r.db.Table("posts"). Select("posts.*, users.username as author_name"). Joins("LEFT JOIN users ON users.uid = posts.user_id"). - Where("posts.uid = ?", id). + Where("posts.id = ?", id). First(&post).Error if err != nil { return nil, err @@ -157,7 +157,7 @@ func (r *PostRepo) CountPending() (int64, error) { // Restore 恢复软删除 func (r *PostRepo) Restore(id uint) error { - result := r.db.Unscoped().Model(&model.Post{}).Where("uid = ?", id).Update("deleted_at", nil) + result := r.db.Unscoped().Model(&model.Post{}).Where("id = ?", id).Update("deleted_at", nil) if result.Error != nil { return result.Error } diff --git a/internal/theme/loader.go b/internal/theme/loader.go index f1e8fc5..e678148 100644 --- a/internal/theme/loader.go +++ b/internal/theme/loader.go @@ -24,6 +24,15 @@ func LoadTemplates(roots ...TemplateRoot) (*template.Template, error) { "subtract": func(a, b int) int { return a - b }, "formatTTL": formatTTL, "assetV": common.AssetV, + // derefUint 安全解引用 *uint 指针。 + // Go 1.26 的模板引擎在将 *uint 传给 printf/print 时不会自动解引用, + // 导致打印指针地址而非值。通过此函数显式解引用后传给 printf。 + "derefUint": func(p *uint) uint { + if p == nil { + return 0 + } + return *p + }, } t := template.New("").Funcs(funcMap) for _, root := range roots { diff --git a/templates/MetaLab-2026/html/messages/index.html b/templates/MetaLab-2026/html/messages/index.html index 087d896..a90461a 100644 --- a/templates/MetaLab-2026/html/messages/index.html +++ b/templates/MetaLab-2026/html/messages/index.html @@ -40,7 +40,7 @@ {{range $i, $m := .Messages}} {{$link := ""}} {{if or (eq $m.NotifyType "post_approved") (eq $m.NotifyType "post_rejected")}} - {{$link = printf "/posts/%d" $m.RelatedID}} + {{$link = printf "/posts/%d" (derefUint $m.RelatedID)}} {{else if or (eq $m.NotifyType "audit_approved") (eq $m.NotifyType "audit_rejected")}} {{$link = "/settings"}} {{end}}