yii2實(shí)現(xiàn) "上一篇,下一篇" 功能的代碼實(shí)例
最近做了簡(jiǎn)答的文章詳情頁(yè)面,需要在頁(yè)面底部加入上一篇,下一篇 按鈕,分析了下,最基本需要有文章的標(biāo)題和id(作為參數(shù)).
開(kāi)始想的是當(dāng)前的id加減1,但考慮到如果部分id丟失就不對(duì)了,于是分別查詢比當(dāng)前id大和小的記錄并且限定為一條,于是有了以下代碼。
代碼如下,不對(duì)的地方請(qǐng)指教.
控制器中
//查詢上-篇文章
$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 : '沒(méi)有了',
];
$model['next_article'] = [
'url' => !is_null($next_article) ? Url::current(['id'=>$next_article->id]) : 'javascript:;',
'title' => !is_null($next_article) ? $next_article->title : '沒(méi)有了',
];
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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP使用Session遇到的一個(gè)Permission denied Notice解決辦法
這篇文章主要介紹了PHP使用Session遇到的一個(gè)Permission denied Notice解決辦法,本文系統(tǒng)環(huán)境是ubuntu、Debian系統(tǒng),有很小的概率會(huì)遇到這個(gè)提示,需要的朋友可以參考下2014-07-07
ThinkPHP關(guān)于session的操作方法匯總
這篇文章主要介紹了ThinkPHP關(guān)于session的操作方法,有助于讀者加深對(duì)ThinkPHP操作session的認(rèn)識(shí),需要的朋友可以參考下2014-07-07
記錄Yii2框架開(kāi)發(fā)微信公眾號(hào)遇到的問(wèn)題及解決方法
微信公眾號(hào)開(kāi)發(fā),提示“該公眾號(hào)暫時(shí)無(wú)法提供服務(wù),請(qǐng)稍后再試”,如何解決?下面小編給大家?guī)?lái)了解決方法,一起看看吧2018-07-07
php版微信公眾平臺(tái)入門(mén)教程之開(kāi)發(fā)者認(rèn)證的方法
這篇文章主要介紹了php版微信公眾平臺(tái)入門(mén)教程之開(kāi)發(fā)者認(rèn)證的方法,結(jié)合實(shí)例形式分析了php版微信公眾平臺(tái)開(kāi)發(fā)者認(rèn)證的步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-09-09
smarty內(nèi)置函數(shù)config_load用法實(shí)例
這篇文章主要介紹了smarty內(nèi)置函數(shù)config_load用法,實(shí)例分析了{(lán)config_load}配置變量的使用技巧,需要的朋友可以參考下2015-01-01
php實(shí)現(xiàn)姓名根據(jù)首字母排序的類與方法(實(shí)例代碼)
這篇文章主要介紹了php實(shí)現(xiàn)姓名根據(jù)首字母排序的類與方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05
ThinkPHP框架實(shí)現(xiàn)數(shù)據(jù)增刪改
本文實(shí)例講述了thinkPHP數(shù)據(jù)庫(kù)增刪改查操作方法。分享給大家供大家參考。希望對(duì)大家學(xué)習(xí)使用thinkPHP有所幫助2017-05-05

