Files
YwxAppThink/app/api/controller/v1/Article.php
T
ywxapp 1d49e6f5ee feat: 公共表更名 common/member 前缀 + 插件命令自动加载 + 版本 1.1.1
- 18 张公共表更名(addon/attachment/configure/links/spider_log/spider_stat/sms/notice/ad/task/prop/medal/help/card -> common_*,member_wallets->member_wallet,score_rule/score_log -> member_*,addon_config->common_addonconf),模型全部对齐新表名,Db 直引用清零
- Attachment 模型补  表名绑定,修复富文本上传查 wxapp_attachment 1146 隐患
- install.sql + 迁移 SQL:backend_admin/backend_role delete_at 默认 0,修复软删除(NULL != 0)误过滤导致后台菜单为空
- AppService::boot() 支持插件 info.php 声明 commands 自动注册插件命令(psr-4 自动加载,坏类名自动跳过)
- 各插件(haonav/mqttbroker/wxchat/articles/blog/forum 等)字段与配置同步调整
- 框架版本 1.1.0 -> 1.1.1
2026-08-20 20:19:15 +08:00

121 lines
3.4 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | YwxApp [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: ywxapp<admin@ywxapp.cn>
// +----------------------------------------------------------------------
declare (strict_types = 1);
namespace app\Api\Controller\V1;
use think\facade\Validate;
use ywxapp\controller\ApiBase;
use addon\articles\model\Article as ArticleModel;
class Article extends ApiBase
{
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']);
}
}