// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\Api\Controller\V1; use think\facade\Validate; use ywxapp\controller\ApiController; use addon\articles\model\Article as ArticleModel; class Article extends ApiController { protected $noNeedLogin = ['*']; protected $needRight = ['*']; public function initialize() { $this->model = new ArticleModel(); } /** * 文章列表 */ public function index() { $page = $this->request->param('page/d', 1); $limit = $this->request->param('limit/d', 15); $list = $this->model->with(['category'])->page($page, $limit)->order('id', 'desc')->select(); $this->result->success($list); } /** * 创建文章 */ public function create(\think\Request $request) { $data = $request->post(); if (empty($data['title'])) { $this->result->error('标题不能为空', 404); } $res = $this->model->create($data); if ($res) { event('article_create_after', $res); $this->result->success($res, '创建成功'); } $this->result->error('创建失败'); } /** * 文章详情 * @route GET /detail, method:GET * @param int $uid 文章ID */ public function detail(\think\Request $request, int $uid= 0 ) { if (!$uid) $this->result->error('Invalid parameters', 404); $info = $this->model->with(['category', 'tags'])->find($uid); if (! $info) { $this->result->error('文章不存在', 404); } $this->result->success($info); } /** * 更新文章 * @route PUT /update, method:PUT * @param int $uid 文章ID */ public function update(\think\Request $request, int $uid= 0 ) { if (!$uid) $this->result->error('Invalid parameters', 404); $info = $this->model->find($uid); if (! $info) { $this->result->error('文章不存在', 404); } $data = $request->only( ['title', 'cover_image', 'summary', 'content', 'author', 'cid', 'status'], 'put' ); $info->save($data); event('article_update_after', $info); $this->result->success($info, '更新成功'); } /** * 删除文章(软删除) * @route DELETE /update, method:DELETE * @param int $uid 文章ID */ public function delete(\think\Request $request, int $uid= 0 ) { if (!$uid) $this->result->error('Invalid parameters', 404); $info = $this->model->find($uid); if (! $info) { $this->result->error('文章不存在', 404); } $info->delete(); event('article_delete_after', $info); $this->result->success('', '删除成功'); } private function getEncryptPassword($password, $salt = '') { return md5(md5($password) . $salt); } public function init() { return json(['message' => 'This is version 1 of the API']); } }