yii2实现 "上一篇,下一篇" 功能的代码实例

 更新时间:2017年02月04日 11:33:23   作者:hebo5485  
在很多页面上都需要加入上一篇,下一篇 按钮,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近做了简答的文章详情页面,需要在页面底部加入上一篇,下一篇 按钮,分析了下,最基本需要有文章的标题和id(作为参数).

开始想的是当前的id加减1,但考虑到如果部分id丢失就不对了,于是分别查询比当前id大和小的记录并且限定为一条,于是有了以下代码。

代码如下,不对的地方请指教.

控制器中

//查询上-篇文章
    $prev_article = 你的模型::find()
      ->andFilterWhere(['<', 'id', $id])
      ->andFilterWhere([其他条件)
      ->orderBy(['id' => SORT_DESC])
      ->limit(1)
      ->one();
    //查询下-篇文章
    $next_article = 你的模型::find()
      ->andFilterWhere(['>', 'id', $id])
      ->andFilterWhere(其他条件)
      ->orderBy(['id' => SORT_ASC])
      ->limit(1)
      ->one();


    $model['prev_article'] = [
      'url' => !is_null($prev_article) ? Url::current(['id'=>$prev_article->id]) : 'javascript:;',
      'title' => !is_null($prev_article) ? $prev_article->title : '没有了',
    ];

    $model['next_article'] = [
      'url' => !is_null($next_article) ? Url::current(['id'=>$next_article->id]) : 'javascript:;',
      'title' => !is_null($next_article) ? $next_article->title : '没有了',
    ];

    return $this->render('view', 
      'model' => $model, 
    );

视图中

<div class="left">
    <p>上一篇:
      <a href="<?=$model['prev_article']['url']?>">
        <?=$model['prev_article']['title']?>
      </a>
    </p>
  </div>
  <div class="right">
    <p>下一篇:
      <a href="<?=$model['next_article']['url']?>">
        <?=$model['next_article']['title']?>
      </a>
    </p>
  </div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • thinkphp5使用无限极分类

    thinkphp5使用无限极分类

    这篇文章主要为大家详细介绍了thinkphp5使用无限极分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • php+iframe实现隐藏无刷新上传文件

    php+iframe实现隐藏无刷新上传文件

    首先ajax不能上传文件,这误导了我有段时间,今晚睡不着就照着说明做了个无刷新上传文件
    2012-02-02
  • PHPExcel笔记, mpdf导出

    PHPExcel笔记, mpdf导出

    这篇文章主要介绍了PHPExcel笔记, mpdf导出,需要的朋友可以参考下
    2016-05-05
  • PHP开发Apache服务器配置

    PHP开发Apache服务器配置

    这篇文章主要介绍了PHP开发Apache服务器配置的相关资料,需要的朋友可以参考下
    2015-07-07
  • 新浪微博OAuth认证和储存的主要过程详解

    新浪微博OAuth认证和储存的主要过程详解

    本文给大家介绍的是参考Twitter的认证过程实现的新浪微博OAuth认证和储存的主要过程详解
    2015-03-03
  • Windows7下PHP开发环境安装配置图文方法

    Windows7下PHP开发环境安装配置图文方法

    备花点时间学习下PHP,于是在自己机器上配置了下PHP的开发和运行环境。之前在Windows Server 2003 OS中手工配置过,WEB服务器是IIS。这次是在自己机器上配置,找了个简单方式。
    2010-05-05
  • phpStorm+XDebug+chrome 配置详解

    phpStorm+XDebug+chrome 配置详解

    这篇文章主要介绍了phpStorm+XDebug+chrome 配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • php+ajax+h5实现图片上传功能

    php+ajax+h5实现图片上传功能

    这篇文章主要为大家详细介绍了php+ajax+h5实现ajax图片上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • PHP开发微信支付的代码分享

    PHP开发微信支付的代码分享

    最近一直在研究微信,不研究不知道,一研究下一跳啊,微信真的可以做太多事情了,先来看下微信支付的开发心得吧,以后会慢慢补全其他方面的开发代码
    2014-05-05
  • PHP 多任务秒级定时器的实现方法

    PHP 多任务秒级定时器的实现方法

    这篇文章主要介绍了PHP 多任务秒级定时器的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05

最新评论