fix(shopro): 修复数据库不支持JSON_ARRAYAGG函数问题
- 修改了 Circle 控制器中的查询语句,使用 CONCAT 和 GROUP_CONCAT 替代 JSON_ARRAYAGG - 优化了 likes 和 comments 字段的数据格式,确保正确返回 JSON 数组格式 - 该修改解决了数据返回格式错误导致的前端解析问题
This commit is contained in:
@@ -22,17 +22,17 @@ class Circle extends Base
|
|||||||
|
|
||||||
$sub = CircleModel::alias('c')
|
$sub = CircleModel::alias('c')
|
||||||
->join([Likes::$tableName => 'l'], 'c.id = l.circle_id', 'LEFT')
|
->join([Likes::$tableName => 'l'], 'c.id = l.circle_id', 'LEFT')
|
||||||
->field("c.*,JSON_ARRAYAGG(JSON_OBJECT(
|
->field("c.*,CONCAT('[',GROUP_CONCAT(JSON_OBJECT(
|
||||||
'id', l.id,
|
'id', l.id,
|
||||||
'user_id', l.user_id,
|
'user_id', l.user_id,
|
||||||
'nickname', l.nickname,
|
'nickname', l.nickname,
|
||||||
'avatar', l.avatar,
|
'avatar', l.avatar,
|
||||||
'gender', l.gender
|
'gender', l.gender
|
||||||
)) AS likes")->group('c.id')->buildSql();
|
)), ']') AS likes")->group('c.id')->buildSql();
|
||||||
$query = Comment::alias('m')
|
$query = Comment::alias('m')
|
||||||
->join([$sub => 'c'], 'c.id = m.circle_id', 'RIGHT')
|
->join([$sub => 'c'], 'c.id = m.circle_id', 'RIGHT')
|
||||||
->field("c.*,
|
->field("c.*,
|
||||||
JSON_ARRAYAGG(JSON_OBJECT(
|
CONCAT('[',GROUP_CONCAT(JSON_OBJECT(
|
||||||
'id', m.id,
|
'id', m.id,
|
||||||
'pid', m.pid,
|
'pid', m.pid,
|
||||||
'puser_id', m.puser_id,
|
'puser_id', m.puser_id,
|
||||||
@@ -43,7 +43,7 @@ class Circle extends Base
|
|||||||
'gender', m.gender,
|
'gender', m.gender,
|
||||||
'content', m.content,
|
'content', m.content,
|
||||||
'create_time', m.create_time
|
'create_time', m.create_time
|
||||||
)) AS comment")->group('c.id');
|
)), ']') AS comment")->group('c.id');
|
||||||
if (isset($params['club_id'])) {
|
if (isset($params['club_id'])) {
|
||||||
$query->where('c.club_id', $params['club_id']);
|
$query->where('c.club_id', $params['club_id']);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user