diff --git a/internal/controller/space_controller.go b/internal/controller/space_controller.go
index 03cec3e..342f94b 100644
--- a/internal/controller/space_controller.go
+++ b/internal/controller/space_controller.go
@@ -99,5 +99,6 @@ func (ctrl *SpaceController) ShowSpace(c *gin.Context) {
"NextPage": nextPage,
"IsOwnSpace": isOwnSpace,
"ExtraCSS": "/static/css/space.css",
+ "ExtraCSS2": "/static/css/follow.css",
}))
}
diff --git a/internal/repository/follow_repo.go b/internal/repository/follow_repo.go
index 5532975..d879087 100644
--- a/internal/repository/follow_repo.go
+++ b/internal/repository/follow_repo.go
@@ -93,14 +93,14 @@ func (r *FollowRepo) ListFollowing(userID uint, offset, limit int) ([]model.User
// IncrFollowersCount 原子增减粉丝数
func (r *FollowRepo) IncrFollowersCount(userID uint, delta int) error {
return r.db.Model(&model.User{}).
- Where("id = ?", userID).
+ Where("uid = ?", userID).
UpdateColumn("followers_count", gorm.Expr("followers_count + ?", delta)).Error
}
// IncrFollowingCount 原子增减关注数
func (r *FollowRepo) IncrFollowingCount(userID uint, delta int) error {
return r.db.Model(&model.User{}).
- Where("id = ?", userID).
+ Where("uid = ?", userID).
UpdateColumn("following_count", gorm.Expr("following_count + ?", delta)).Error
}
diff --git a/templates/MetaLab-2026/html/layout/header.html b/templates/MetaLab-2026/html/layout/header.html
index 67c71e9..52caf11 100644
--- a/templates/MetaLab-2026/html/layout/header.html
+++ b/templates/MetaLab-2026/html/layout/header.html
@@ -17,5 +17,8 @@
{{if .ExtraCSS}}
{{end}}
+{{if .ExtraCSS2}}
+
+{{end}}
diff --git a/templates/MetaLab-2026/html/space/index.html b/templates/MetaLab-2026/html/space/index.html
index 43bcb45..10cdd4d 100644
--- a/templates/MetaLab-2026/html/space/index.html
+++ b/templates/MetaLab-2026/html/space/index.html
@@ -104,8 +104,6 @@
var followBtn = document.getElementById('followBtn');
if (!followBtn) return;
var targetUid = followBtn.getAttribute('data-uid');
- var csrfMeta = document.querySelector('meta[name="csrf-token"]');
- var csrfToken = csrfMeta ? csrfMeta.getAttribute('content') : '';
// 四个按钮状态文案
var labels = {
@@ -149,7 +147,6 @@
followBtn.classList.add('waiting');
var xhr = new XMLHttpRequest();
xhr.open('POST', '/api/users/' + targetUid + '/follow', true);
- xhr.setRequestHeader('X-CSRF-Token', csrfToken);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
followBtn.classList.remove('waiting');