模型关联分页简单案例,标签关联文章,对文章进行分页,上一篇文章写得比较繁琐,这里可以将问题拆解成一对多关系,那么问题就迎刃而解了。

我们可以通过查询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模型关联分页相关推荐

  1. 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 ...

  2. php分页代码简单实现原理,php分页类之PHP分页原理+代码实现

    首先了解SQL语句中的limit用法 SELECT * FROM table -- limit 开始位置 , 操作条数 (其中开始位置是从0开始的) 例子: 取前20条记录:SELECT * FROM ...

  3. thinkphp6.0模型篇之关联预载入

    1.在普通的关联查询下,我们循环数据列表会执行n+1次sql查询 $list = UserModel::select([19, 20, 21]); foreach ($list as $user) { ...

  4. thinkphp6.0模型篇之关联模型

    一.关联模型定义 1.关联模型就是将表与表之间进行关联和对象化,更高效的操作数据 2.创建两个表的空模型,在含有主键的表中关联另一个表 public function stumenu(){//hasO ...

  5. 灰色模型 java代码_灰色模型的简单Java实现

    前几天在以前的遗留代码中发现一个问题,就是我生成的一个数据的走势曲线的预测值(用于灰色时间序列预测)总是和老代码里的不一致,具体来说就是:遗留代码里面的预测值的斜率总是为零,相比之下我生成的就比较合理 ...

  6. arma模型matlab代码_DCC GARCH模型

    模型的全称:Dynamic Conditional Correlation (DCC-) GARCH. 理解DCC GARCH模型的知识基础: 1.知道什么是协方差阵 2.知道什么是GARCH模型 3 ...

  7. leslie模型matlab代码6,leslie模型人口预测程序,请求大家!

    x=[68460528.3 80050113.21 102133056.6 108942188.7 78243245.28 83795471.7 109125132.1 124640528.3 111 ...

  8. ipat模型matlab代码,基于IPAT模型的河北省灰水足迹分析及预测

    摘要: 河北作为京津冀发展圈的重要组成部分,水质水量问题突出,因此迫切需要对其水量和水质进行研究.基于农业和工业生活两部分,选取N肥,P肥,COD为关键污染物,以水环境最大允许容量为依据,计算了河北省 ...

  9. php生成文章页,php结合smarty生成静态页面php文章内分页代码

    本文介绍了php中使用smarty模板引擎生成静态页面的方法,以及php实现文章分页的实现代码,需要的朋友参考下. 例子,php中smarty生成静态页.文章内分页代码.专题:php分页代码原理 ', ...

最新文章

  1. onbeforeedit和onbeginedit数据不一致_Redis缓存与数据库产生不一致的问题该如何解决?...
  2. python中的作用域以及内置函数globals()-全局变量、locals()-局部变量
  3. 亚马逊两万员工确诊新冠、iOS14.2带来新版emoji、大数据独角兽Palantir上市等| Decode the Week...
  4. python 数据库
  5. poj 2049(二分+spfa判负环)
  6. 事务的传播性和隔离级别
  7. java值的传递_Java 8可选–基于值的类使用指南
  8. 8.python之面相对象part.6(反射__call__,__setattr__,__delattr__,__getattr__)
  9. android avrcp处理流程,android 蓝牙avrcp功能的实现.doc
  10. 整合SSM框架 -- 简单基础SSM项目
  11. synchronized原理
  12. cad一直正在加载_CAD总是打开要加载好久,卡到不行。
  13. Makefile--如何将当前文件下的所有*.cpp文件与*.c文件全部生成相应的可执行文件
  14. 楠哥Java SE总结详细笔记
  15. 如何解决因涉及不良信息导致QQ互联审核不通过?
  16. 图像渐变 java_JavaScript图形实例:利用插值实现图像渐变
  17. Windows系统解决谷歌翻译不能用的问题
  18. Java8新的时间和日期
  19. 看Salesforce的“云计算”平台
  20. 推荐系统论文笔记---Neural News Recommendation with Attentive Multi-View Learning

热门文章

  1. [机器学习]回归--Decision Tree Regression
  2. 蓝桥杯 能量项链 (区间dp)
  3. Asp.Net Core中Session使用
  4. Windows如何查看端口占用
  5. Android之BroadcastReceiver的使用
  6. Datatable Initialization - 使用objects数据源初始化
  7. 【BZOJ-4245】OR-XOR 按位贪心
  8. PAT:1019. 数字黑洞 (20) AC(同甲级1069)
  9. Windows 7可以体验IE10了
  10. editorloop 占用_systemd CPU占用100%,并出现大量僵尸进程