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

文章列表展示的主要功能点有:

联动栏目数据库查询文章对应的栏目展示出来;

展示略缩图;

展示格式化时间;

列表分页;

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="" οnclick="return confirm('你确定要删除这篇文章吗?');">删除</a>
                            </th>
                            </tr>
                          {/volist}
                        </tbody>
</table>
<div>{$artres->render()}</div>
6.效果







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值