auth(); $uid = (int)$user['id']; $type = $this->input('type', ''); // 闭包重建查询:TP5.0 的 count() 会清空 Query::options,不能复用同一对象 list($rows, $total, $page, $size) = $this->pageQuery(function ($forCount) use ($uid, $type) { $q = Db::name('fc_message')->where('user_id', 'in', [$uid, 0]); if ($type !== '' && $type !== null) { $q->where('type', $type); } if ($forCount) { return $q; } return $q->order('createtime desc'); }); $list = []; foreach ($rows as $row) { $list[] = [ 'id' => (int)$row['id'], 'type' => (string)$row['type'], 'title' => (string)$row['title'], 'content' => (string)$row['content'], 'read' => (bool)(int)$row['isread'], 'createdAt' => $this->iso($row['createtime']), ]; } $this->ok($this->paginate($list, $total, $page, $size)); } /** * M2 标记已读 * POST /api/v1/message/:id/read → {read:true} */ public function read() { $user = $this->auth(); $uid = (int)$user['id']; $id = (int)$this->request->param('id', 0); Db::name('fc_message')->where('id', $id) ->where('user_id', 'in', [$uid, 0]) ->update(['isread' => 1, 'readtime' => time()]); $this->ok(['read' => true]); } }