編程學習網 > PHP技術 > Yii2 > yii2實現 "上一篇,下一篇" 功能的代碼實例
2020
02-21

yii2實現 "上一篇,下一篇" 功能的代碼實例

最近做了簡答的文章詳情頁面,需要在頁面底部加入上一篇,下一篇 按鈕,分析了下,最基本需要有文章的標題和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>
 



 


以上就是本文的全部內容,希望對大家的學習有所幫助

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取