最近做了簡答的文章詳情頁面,需要在頁面底部加入上一篇,下一篇 按鈕,分析了下,最基本需要有文章的標題和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>
- Yii2使用Url組件
- Yii2的Html,Request組件詳解
- YII2.0框架, 多圖片上傳功能
- yii2-imagine配置
- 有潔癖的禁止默認YII自帶垃圾代碼(個人認為)、JS、CSS(新手教程)
- Yii2 API接口輸出統一Json和jsonp格式方法
- MySql 創建表的一些語句釋義
- Yii2聯合查詢(配合GridView)
- Yii 通用系統字典
- ArrayHelper的多維數組排序函數multisort,強大無比。
- 路由規則,在Url中替換使用'/'以外的符號連接
- 從excel文件中讀取表格內容,并批量寫入數據庫
- yii2注冊時驗證用戶名、郵箱等唯一性
- Yii2最全的實戰教程
- Composer安裝yii2-imagine 壓縮,剪切,旋轉,水印
- LinkPager增加總頁數 和總記錄數
- Yii2 獲取模塊名控制器名方法名
- Yii2使用yii2-adminlte+yii2-admin左側菜單子路徑不高亮問題又解
- 前端CSS框架
- Yii2 之 frontend 子模塊實踐之一:添加前后臺子模塊
- Yii2 之 frontend 子模塊實踐之二:構建子模塊的獨立配置
- Yii2 之 frontend 子模塊實踐之三:布局和語言配置
- 完美解決ajax驗證碼不刷新問題,讓驗證碼更加美觀,不修改任何源代碼
- yii2.0 表單小部件常用的默認選中
- Yii2 controller 傳值給layout
- yii2 dropDownList 二級和三級 聯動寫法
- 微信掃碼登錄 新窗口二維碼 掃完關閉二維碼頁面 進入登錄頁面
- yii2 實現 "上一篇,下一篇" 功能
- Yii 行為簡單應用
- SQL語句