yii2实现 "上一篇,下一篇" 功能的代码实例
发布时间 - 2026-01-10 22:51:24 点击率:次最近做了简答的文章详情页面,需要在页面底部加入上一篇,下一篇 按钮,分析了下,最基本需要有文章的标题和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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# php实现上一篇下一篇
# yii2上一篇下一篇
# yii2使用gridView实现下拉列表筛选数据
# yii2实现分页
# 带搜索的分页功能示例
# Yii2选项卡的简单使用
# 下一篇
# 上一篇
# 的是
# 没有了
# 就不
# 考虑到
# 大家多多
# 大和
# 加减
# 地方请
# 器中
# 对了
# strong
# pre
# brush
# php
# prev_article
# class
# id
# href
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何在阿里云域名上完成建站全流程?
如何确认建站备案号应放置的具体位置?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
高防服务器如何保障网站安全无虞?
如何快速使用云服务器搭建个人网站?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Android实现代码画虚线边框背景效果
详解Android图表 MPAndroidChart折线图
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Laravel怎么在Controller之外的地方验证数据
详解Huffman编码算法之Java实现
Laravel如何创建自定义中间件?(Middleware代码示例)
EditPlus中的正则表达式 实战(2)
Android自定义listview布局实现上拉加载下拉刷新功能
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
公司门户网站制作流程,华为官网怎么做?
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Python文件异常处理策略_健壮性说明【指导】
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何在阿里云购买域名并搭建网站?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
lovemo网页版地址 lovemo官网手机登录
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
免费网站制作appp,免费制作app哪个平台好?
Laravel怎么使用Intervention Image库处理图片上传和缩放
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何自定义建站之星模板颜色并下载新样式?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Python文本处理实践_日志清洗解析【指导】
如何正确选择百度移动适配建站域名?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
如何用低价快速搭建高质量网站?
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
EditPlus中的正则表达式 实战(4)
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何将凡科建站内容保存为本地文件?

