php模型分页代码,ThinkPHP6.0模型关联分页
模型关联分页简单案例,标签关联文章,对文章进行分页,上一篇文章写得比较繁琐,这里可以将问题拆解成一对多关系,那么问题就迎刃而解了。
我们可以通过查询tag直接拿到tag_id,通过中间表和文章表关联一对多实现关联分页,总体代码量会精简许多,而且能达到相同的效果,下面来看看吧!
文章模型
namespace app\admin\model;
class News extends Common
{
protected $autoWriteTimestamp = true;// 开启自动写入时间戳字段
/*
* 定义了修改器之后会在下列情况下触发:
* 模型对象赋值;
* 调用模型的data方法,并且第二个参数传入true;
* 调用模型的save方法,并且传入数据;
* 显式调用模型的setAttr方法;
* 定义设置文章的描述,若为空直接截取内容前面的文字
*/
public function setAbstractAttr($abstract, $news)
{
$abstract=str_replace(' ','',$abstract);
if (empty($abstract)){
return mb_substr(strip_tags(htmlspecialchars_decode($news['content'])), 0, 100, 'utf-8');
}else{
return $abstract;
}
}
//
public function tags()
{
return $this->belongsToMany('Tags', '\\app\\admin\\model\\NewsTags', 'tags_id','news_id');
}
public function newsCategory()
{
return $this->belongsTo('NewsCategory', 'news_category_id', 'id');
}
//关联中间表
public function newsTags()
{
return $this->belongsTo(NewsTags::class,'id', 'news_id');
}
}
中间表模型
namespace app\admin\model;
use think\model\Pivot;
class NewsTags extends Pivot
{
}
具体分页代码
public function index()
{
$data=$this->request->param();
$tag_name=$data['name'];
$tag=Tags::where('name',$tag_name)->find();
$news = News::hasWhere('newsTags',array('tags_id'=>$tag->id))->with('newsCategory')->paginate(1);
return view('index',compact('tag','news'));
}
分页
实现了和上个版本相同的效果,明显更优。希望对大家有所帮助!
php模型分页代码,ThinkPHP6.0模型关联分页相关推荐
- SIR传染模型Matlab代码,sir传染病模型 MATLAB代码运行不了,
问题描述: sir传染病模型 MATLAB代码运行不了, function y=ill(t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts ...
- php分页代码简单实现原理,php分页类之PHP分页原理+代码实现
首先了解SQL语句中的limit用法 SELECT * FROM table -- limit 开始位置 , 操作条数 (其中开始位置是从0开始的) 例子: 取前20条记录:SELECT * FROM ...
- thinkphp6.0模型篇之关联预载入
1.在普通的关联查询下,我们循环数据列表会执行n+1次sql查询 $list = UserModel::select([19, 20, 21]); foreach ($list as $user) { ...
- thinkphp6.0模型篇之关联模型
一.关联模型定义 1.关联模型就是将表与表之间进行关联和对象化,更高效的操作数据 2.创建两个表的空模型,在含有主键的表中关联另一个表 public function stumenu(){//hasO ...
- 灰色模型 java代码_灰色模型的简单Java实现
前几天在以前的遗留代码中发现一个问题,就是我生成的一个数据的走势曲线的预测值(用于灰色时间序列预测)总是和老代码里的不一致,具体来说就是:遗留代码里面的预测值的斜率总是为零,相比之下我生成的就比较合理 ...
- arma模型matlab代码_DCC GARCH模型
模型的全称:Dynamic Conditional Correlation (DCC-) GARCH. 理解DCC GARCH模型的知识基础: 1.知道什么是协方差阵 2.知道什么是GARCH模型 3 ...
- leslie模型matlab代码6,leslie模型人口预测程序,请求大家!
x=[68460528.3 80050113.21 102133056.6 108942188.7 78243245.28 83795471.7 109125132.1 124640528.3 111 ...
- ipat模型matlab代码,基于IPAT模型的河北省灰水足迹分析及预测
摘要: 河北作为京津冀发展圈的重要组成部分,水质水量问题突出,因此迫切需要对其水量和水质进行研究.基于农业和工业生活两部分,选取N肥,P肥,COD为关键污染物,以水环境最大允许容量为依据,计算了河北省 ...
- php生成文章页,php结合smarty生成静态页面php文章内分页代码
本文介绍了php中使用smarty模板引擎生成静态页面的方法,以及php实现文章分页的实现代码,需要的朋友参考下. 例子,php中smarty生成静态页.文章内分页代码.专题:php分页代码原理 ', ...
最新文章
- onbeforeedit和onbeginedit数据不一致_Redis缓存与数据库产生不一致的问题该如何解决?...
- python中的作用域以及内置函数globals()-全局变量、locals()-局部变量
- 亚马逊两万员工确诊新冠、iOS14.2带来新版emoji、大数据独角兽Palantir上市等| Decode the Week...
- python 数据库
- poj 2049(二分+spfa判负环)
- 事务的传播性和隔离级别
- java值的传递_Java 8可选–基于值的类使用指南
- 8.python之面相对象part.6(反射__call__,__setattr__,__delattr__,__getattr__)
- android avrcp处理流程,android 蓝牙avrcp功能的实现.doc
- 整合SSM框架 -- 简单基础SSM项目
- synchronized原理
- cad一直正在加载_CAD总是打开要加载好久,卡到不行。
- Makefile--如何将当前文件下的所有*.cpp文件与*.c文件全部生成相应的可执行文件
- 楠哥Java SE总结详细笔记
- 如何解决因涉及不良信息导致QQ互联审核不通过?
- 图像渐变 java_JavaScript图形实例:利用插值实现图像渐变
- Windows系统解决谷歌翻译不能用的问题
- Java8新的时间和日期
- 看Salesforce的“云计算”平台
- 推荐系统论文笔记---Neural News Recommendation with Attentive Multi-View Learning
热门文章
- [机器学习]回归--Decision Tree Regression
- 蓝桥杯 能量项链 (区间dp)
- Asp.Net Core中Session使用
- Windows如何查看端口占用
- Android之BroadcastReceiver的使用
- Datatable Initialization - 使用objects数据源初始化
- 【BZOJ-4245】OR-XOR 按位贪心
- PAT:1019. 数字黑洞 (20) AC(同甲级1069)
- Windows 7可以体验IE10了
- editorloop 占用_systemd CPU占用100%,并出现大量僵尸进程