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

2018-09-07 19:06

阅读:404

  最近做了简答的文章详情页面,需要在页面底部加入上一篇,下一篇 按钮,分析了下,最基本需要有文章的标题和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>

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


评论


亲,登录后才可以留言!