[thinkPHP5项目实战_16]文章列表展示

2019-04-15 16:11发布

文章列表展示的主要功能点有: 联动栏目数据库查询文章对应的栏目展示出来; 展示略缩图; 展示格式化时间; 列表分页; 1.数据库联动查询 thinkPHP5提供了数据库查询的链式操作查询方法https://www.kancloud.cn/manual/thinkphp5/118083 我们要根据article表的cateid来查询cate表中cateid对应的catename,操作方法为: $artres = hinkDb::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 = hinkDb::name('article')->alias('a')->join('cate c','c.ID = a.cateid','LEFT')->paginate(3);
{$artres->render()}

页面引用了bootstrap库,因此会自动优化好样式。 3.时间格式化 使用时间过滤功能 date="Y-m-d",### 4.输出缩略图 需要对是否有缩略图进行判断 {if condition="$vo['pic'] neq ''"} {else /} 暂无缩略图 {/if}
5.模板视图代码: {volist name="artres" id="vo"} {/volist}
ID 文章标题 略缩图 点击量 栏目 发布时间 操作
{$vo.artid} {$vo.title} {if condition="$vo['pic'] neq ''"} {else /} 暂无缩略图 {/if} {$vo.click} {$vo.catename} {$vo.time | date="Y-m-d",###} 修改 删除
{$artres->render()}
6.效果