上一页、下一页的实现思想:

首先是获取传输过来的ID;

$id = intval($this->_context->id);

intval() 函数用于获取变量的整数值。

 

其次用当前的ID分别查找上个ID和下一个ID的内容;

$previous = Blog::find('id<?',$id)->order('id desc')->getOne();

$next = Blog::find('id>?',$id)->getOne();

如果能确保id是连续的,在find中的条件可以更改为$id-1$id+1;

查找上一个ID内容需要用到 order('id desc') ,因为查找是按顺序进行的,如果不设置为倒序查找,则会从第一个ID开始查询。

 

最后将结果输出。

$this->_view['previous']=$previous;

$this->_view['next']=$next;

将查询到的上一条数据和下一条数据传给前端;

前端将数据进行输出显示;

<?php if (empty($previous->subject)):?><p>上一篇:这是第一条</p><?php else:?>
     <p>上一篇:<a href="<?php echo url('blog::detail', array('id' => $previous->id)); ?>"><?php echo $previous->subject;?><?php endif;?></a></p>
     <?php if (empty($next->subject)):?><p>下一篇:这是最后一条</p><?php else:?>
     <p>下一篇:<a href="<?php echo url('blog::detail', array('id' => $next->id)); ?>"><?php echo $next->subject;?>
<?php endif;?></a></p>

输出显示时先进行判断,判断是否是第一条内容还是最后一条内容,因为第一条内容往前没有内容了;最后一条内容同理,所以需要先判断。

 

显示结果如下:

 

 

 

 

更多推荐

上一页、下一页功能的实现