[thinkPHP5项目实战_16]文章列表展示
来源:互联网 发布:mysql 的cve漏洞库 编辑:程序博客网 时间:2024/04/27 02:41
文章列表展示的主要功能点有:
联动栏目数据库查询文章对应的栏目展示出来;
展示略缩图;
展示格式化时间;
列表分页;
1.数据库联动查询
thinkPHP5提供了数据库查询的链式操作查询方法https://www.kancloud.cn/manual/thinkphp5/118083
我们要根据article表的cateid来查询cate表中cateid对应的catename,操作方法为:
$artres = \think\Db::name('article')->alias('a')->join('cate c','c.ID = a.cateid','LEFT')->select();join方法有三个参数及返回值分别代表:
join要关联的(完整)表名以及别名支持三种写法:写法1:[ '完整表名或者子查询'=>'别名' ]写法2:'完整表名 别名'写法3:'不带数据表前缀的表名'condition关联条件。可以为字符串或数组, 为数组时每一个元素都是一个关联条件。type关联类型。可以为:INNER、LEFT、RIGHT、FULL,不区分大小写,默认为INNER。INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行FULL JOIN: 只要其中一个表中存在匹配,就返回行返回值模型对象
2.数据分页
在查询数据中指定每页数据,分页代码置于视图模板:
$artres = \think\Db::name('article')->alias('a')->join('cate c','c.ID = a.cateid','LEFT')->paginate(3);
<div>{$artres->render()}</div>
页面引用了bootstrap库,因此会自动优化好样式。
3.时间格式化
使用时间过滤功能
date="Y-m-d",###
4.输出缩略图
需要对是否有缩略图进行判断
{if condition="$vo['pic'] neq ''"}<img src="__PUBLIC__{$vo.pic}" height="50">{else /} 暂无缩略图{/if}
5.模板视图代码:
<table class="table table-striped"> <thead> <tr> <th>ID</th> <th>文章标题</th> <th>略缩图</th> <th>点击量</th> <th>栏目</th> <th>发布时间</th> <th>操作</th> </tr> </thead> <tbody> {volist name="artres" id="vo"} <tr> <th>{$vo.artid}</th> <th>{$vo.title}</th> <th>{if condition="$vo['pic'] neq ''"}<img src="__PUBLIC__{$vo.pic}" height="50">{else /} 暂无缩略图{/if} </th> <th>{$vo.click}</th> <th>{$vo.catename}</th> <th>{$vo.time | date="Y-m-d",###}</th> <th> <a class="link-update" href="">修改</a> <a class="lin-del" href="" onclick="return confirm('你确定要删除这篇文章吗?');">删除</a> </th> </tr> {/volist} </tbody></table><div>{$artres->render()}</div>6.效果
阅读全文
0 0
- [thinkPHP5项目实战_16]文章列表展示
- [thinkPHP5项目实战_25]前台文章列表展示
- [thinkPHP5项目实战_15]创建文章读取栏目列表
- [thinkPHP5项目实战_27]前台文章内容展示
- [thinkPHP5项目实战_17]文章编辑
- [thinkPHP5项目实战_12]文章管理界面创建
- [thinkPHP5项目实战_13]新增文章界面附件上传
- [thinkPHP5项目实战_26]前台文章关键词搜索
- [thinkPHP5项目实战_10]栏目列表输出和删除
- [thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
- [thinkPHP5项目实战_28]前台文章"相关文章"的功能完善
- RN实战阶段小结-小项目:书籍列表和展示
- [thinkPHP5项目实战_29]前台首页和文章搜索功能完善
- ThinkPHP5开发(五)显示博客文章列表
- [thinkPHP5项目实战_06]引入前台页面
- [thinkPHP5项目实战_11]栏目修改
- [thinkPHP5项目实战_14]场景验证
- [thinkPHP5项目实战_19]模型添加数据
- 配置xmpp
- unrecognized command line option ‘-std=c++11’
- java-----基本数据类型包装类
- H2数据库介绍
- Android开发之进度条: Android小鲜肉!~
- [thinkPHP5项目实战_16]文章列表展示
- /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- re
- iOS开发网络篇—NSURLConnection基本使用
- ll命令字段所代表的意思
- 欢迎使用CSDN-markdown编辑器
- MSP430的485通信程序(接收字符串指令)
- POJ
- idea导入多个工程
- MYSQL5.1参考手册主要SQL总结(半转载)