thinkphp5中文章上一篇下一篇的实现

原创
2017/06/11 20:30
阅读数 268

    最近学校的一个社团邀请我帮他们做一个参加比赛用的网站,在网站开发过程中遇到了上一篇下一篇的实现问题,这个问题很容易就能解决,我就简单说说我是怎么实现的。

    首先在控制器中查询数据,上一篇就查询id比当前id小的,用desc进行将序排列,取一条就是上一篇了。举个例子,当前id为5,id小于5的有1,2,3,4,降序就是4,3,2,1,取第一条就是4,正好是上一篇,下一篇同理可得。下一篇就取比当前id大的,asc升序排列,取第一条就是下一篇了。代码如下:

//上一篇下一篇的实现
$last=db('glarticle')->where('id','<',$id)->order('id desc')->limit(1)->field('id,title')->find();
 $next=db('glarticle')->where('id','>',$id)->order('id asc')->limit(1)->field('id,title')->find();

页面代码如下:

<p>
上一篇:
{if condition="$last === null"}
没有上一篇了
{else/}
<a href="{:url('控制器/操作方法',array('id'=>$last['id']))}">{$last.title}</a>
{/if}
<br />

下一篇:
{if condition="$next === null"}
没有下一篇了
{else/}
<a href="{:url('控制器/操作方法',array('id'=>$next['id']))}">{$next.title}</a>
{/if}
</p>

将控制器/方法换成你自己的就行了.

这样实现上一篇下一篇,就算中间id不是连续的也不会出错.

 

展开阅读全文
打赏
0
0 收藏
分享

作者的其它热门文章

加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部