2.10 单篇文章内容
第 17 节 / 共 46 节
课程:ThinkPHP
上一节做出来的文章列表,标题都是类似于localhost/article/3这样的链接,最后一位是数字,代表的是文章的id,此页面应该是显示文章的内容。
首先,在app/controller里面添加Article.php,用来处理请求localhost/article/3:
<?phpnamespace app\controller;use app\BaseController;use think\Exception;class Article extends BaseController { public function read($articleid) { try { $article = new \app\model\Article(); $result = $article->findByArticleId($articleid); if ($result=="") { return view('../view/public/error_500.html'); } // 在view目录下新建article目录,并创建read.html模板页面 return view('read', ['article'=>$result[0]]); } // 可能出现异常的情况就是文章ID不正确,则直接响应500页面 catch (\Exception $e) { return view('../view/public/error_500.html'); } }}接着,要在app/model/Article.php里面添加查询函数,根据id查询文章的函数:
public function findByArticleId($articleid) { $result = $this->alias('a')->join('users u', 'u.userid=a.userid') ->where('a.hide', 0)->where('a.drafted', 0)->where('a.checked', 1) ->where('a.articleid', $articleid)->field('a.*, u.nickname')->select(); return $result;}
然后是前端的显示,在view/article下创建文件read.html,把下面的代码粘贴进去:
{extend name="../view/public/base.html" /}{block name="content"}<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 info"> 作者:{$article.nickname} 类别:{$Think.config.article_type[$article.category]} 日期:{$article.createtime} 阅读:{$article.readcount} 次 消耗积分:{$article.credit} 分</div><div class="col-12 content" id="content"> {$article.content | raw} <!-- 要保持HTML原样输出,不能转义 --></div>{include file="../view/public/side.html" /}{/block}此模板还需要文章分类的配置文件,在config(和app平行的一个文件夹)里面创建文件article_type.php,把下列代码粘贴进去:
<?phpreturn [ '1' => 'PHP开发', '2' => 'Java开发', '3' => 'Python开发', '4' => 'Web前端', '5' => '测试开发', '6' => '数据科学', '7' => '网络安全', '8' => '蜗牛杂谈'];
最后就是路由,在route/app.php里面添加路由配置:
Route::get('/article/:articleid$', 'article/read');
《ThinkPHP》课程目录
介绍PHP框架ThinkPHP6
- 第1章 配置环境
- 1.1 第一个ThinkPHP8项目
- 1.2 Composer项目结构介绍
- 1.3 启动项目
- 1.4 ThinkPHP8项目的部署
- 1.5 idea教育版免费一年获取办法
- 第2章 基本特性
- 2.1 响应HTTP请求
- 2.2 响应html
- 2.3 登录-前端
- 2.4 登录-后台
- 2.5 数据库基本操作
- 2.6 模型支持
- 2.7 登录状态和session
- 2.8 注册
- 2.9 主页文章列表
- 2.10 单篇文章内容
- 2.11 完善文章页面
- 2.12 文件上传
- 第3章 实训
- 3.1 项目准备
- 3.2 登录
- 3.3 数据库登录和json规范返回
- 3.4 注册
- 3.5 查询课程
- 3.6 个人信息
- 3.7 修改昵称
- 3.8 *主页信息
- 3.9 统计
- 3.10 学习-侧边导航
- 3.11 *学习-右边内容
- 3.12 管理-课程
- 3.13 管理-班级
- 3.14 管理-班级-学生换班
- 3.15 管理-班级-查找学生
- 第4章 git代码管理
- 4.1 建立代码库
- 4.2 代码管理提交、推送和拉取
- 4.3 从云克隆代码
- 第5章 项目重构成spirngboot
- 5.1 项目技术介绍
- 5.2 创建一个ThinkPHP8项目
- 5.4 移入网页和PHP代码
- 5.5 模型和服务
- 5.7 测试
- 第6章 nginx