From bb18ce54600c6f299438d4101e98a88517e0430f Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Sat, 12 Apr 2025 17:03:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=96=87=E7=AB=A0=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E7=95=99=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/index/controller/Article.php | 45 +++++++++++++++++++++++++++++- app/index/route/route.php | 2 ++ app/index/view/article/detail.html | 26 +++++++++++++++-- 3 files changed, 70 insertions(+), 3 deletions(-) diff --git a/app/index/controller/Article.php b/app/index/controller/Article.php index 52cfadb4..8dda8f58 100644 --- a/app/index/controller/Article.php +++ b/app/index/controller/Article.php @@ -3,12 +3,16 @@ declare (strict_types = 1); namespace app\index\controller; -use app\admin\controller\v1\BannerItem; use app\index\model\ArticleCategoryModel; +use app\index\model\ArticleLeaveMessageModel; use app\index\model\ArticleModel; use app\index\model\SysBannerItemModel; +use think\facade\Validate; use think\facade\View; +/** + * 文章控制器 + */ class Article extends Common { /** @@ -100,4 +104,43 @@ class Article extends Common return View::fetch('detail'); } + + /** + * 留言 + */ + public function comment() + { + $id = request()->param('id'); + $post = request()->post([ + 'name', + 'email', + 'content' + ]); + + // 验证字段 + $validate = Validate::rule([ + 'name' => 'max:64', + 'email' => 'email' + ]) + ->message([ + 'name.max' => '姓名不能超过64个字符', + 'email' => '请输入正确的邮箱' + ]); + if (!$validate->check($post)) { + return error($validate->getError()); + } + + // 保存留言 + $data = array_merge($post, [ + 'article_id' => $id, + 'ip' => request()->ip(), + 'user_agent' => request()->header('user-agent') + ]); + $ret = ArticleLeaveMessageModel::create($data); + if ($ret->isEmpty()) { + return error('留言提交失败'); + } + + return success('留言提交成功'); + } } diff --git a/app/index/route/route.php b/app/index/route/route.php index 32da2902..9d860a38 100644 --- a/app/index/route/route.php +++ b/app/index/route/route.php @@ -30,6 +30,8 @@ Route::group('article', function() { Route::get('detail/:id', 'Article/detail'); // 文章搜索页 Route::get('search', 'Article/search'); + // 文章留言 + Route::post('comment', 'Article/comment'); }); // 数据迁移 diff --git a/app/index/view/article/detail.html b/app/index/view/article/detail.html index ce450117..39471b6b 100644 --- a/app/index/view/article/detail.html +++ b/app/index/view/article/detail.html @@ -45,14 +45,14 @@

{:lang('article.detail_leave_reply')}

-
+ {:lang('article.detail_leave_reply_name')} {:lang('article.detail_leave_reply_email')}

{:lang('article.detail_leave_reply_email_tip')}

{:lang('article.detail_leave_reply_comment')} - +
{:lang('article.detail_leave_reply_submit')}
@@ -81,4 +81,26 @@ {/notempty} +{/block} +{block name="script"} + {/block} \ No newline at end of file