yii2實現 "上一篇,下一篇" 功能的代碼執行個體

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

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援topic.alibabacloud.com。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.