auth(); $targetType = strtolower(trim((string)$this->input('targetType', ''))); if (!in_array($targetType, ['post', 'comment'], true)) { $this->fail('举报类型不支持'); } $reason = trim((string)$this->input('reason', '')); if ($reason === '') { $this->fail('请选择举报原因'); } if (mb_strlen($reason) > 60) { $reason = mb_substr($reason, 0, 60); } $targetId = (int)$this->input('targetId', 0); if ($targetId <= 0) { $this->fail('举报对象不存在'); } if ($targetType === 'post') { $target = Db::name('fc_post')->where('id', $targetId)->whereNull('deletetime')->find(); if (!$target) { $this->fail('信息不存在', 404); } } else { $target = Db::name('fc_comment')->where('id', $targetId)->find(); if (!$target) { $this->fail('评价不存在', 404); } } $detail = trim((string)$this->input('detail', '')); $now = time(); $reportId = Db::name('fc_report')->insertGetId([ 'target_type' => $targetType, 'target_id' => $targetId, 'reason' => $reason, 'reporter_id' => (int)$user['id'], 'status' => 'pending', 'remark' => mb_substr($detail, 0, 200), 'createtime' => $now, 'updatetime' => $now, ]); $this->ok(['reportId' => $reportId]); } }