博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tp3.2中怎么访问分类及子分类下面的文章
阅读量:4944 次
发布时间:2019-06-11

本文共 1433 字,大约阅读时间需要 4 分钟。

在项目开发过程中,我们可能会遇到在进入文章分类时需要遍历文章分类及文章子分类下面的文章的情况,具体解决步骤如下:

一、为便于理解,这里列出用到的表及字段

文章分类表(article_cate)

文章表(article)

 

 

 

其中 article 表的 cate_id 和 article_cate 表的 id 关联,article_cate 表中的 pid 是 id 的父级代号。

 

从表中可以看出,在 id 为 69 的文章分类下的 id 为 70 的子分类 下的 id 为 111 的 分类下 有一篇 cate_id 为111的文章

 

二、

(1)关系图如下

 

(2)要达到的效果就是

 

在控制器中写一个方法:能取到 与 文章分类有关联的所有分类 id , 及 id 为 69 下的所有 子 id 及 子 id 下的 二级子 id ,以此类推。代码如下:

 

1  public function getChild($pid = 0){ 2         global $article_cate; 3         $where = [ 4             'pid' => $pid 5         ]; 6  7         $datas = D('articleCate')->where($where)->select(); 8         if(!empty($datas)){ 9             foreach($datas as $data){10                 $article_cate[] = $data['id'];11                 $this->getChild($data['id']);12             }13         }14         return $article_cate;15     }16     public function getC(){17         global $article_cate;18         $article_cate = [];19 20     }

 

调用:

在 方法中传入 69 这个参数,就会返回与 id 为69 有关联的 id

因为是定义了全局变量,所以在调用的时候还要清一下全局变量,具体调用代码如下:

 

1  global $article_cate;2         $article_cate = [];3         $arr = $this->getChild(69);4         $str = implode(',',$arr);5         $str = $str.',69';6         $mapzb2bt['cate_id'] = array('in',$str);7         $zb2list = $arc->where($mapzb2bt)->order('a_id desc')->limit(6)->select();8         $this->assign('zb2list',$zb2list);

 

其中拼了一个 69 是为了不进查询 id 为 69 下的所有子分类文章,还能查询 id 为69 下的分类文章

转载于:https://www.cnblogs.com/shenzikun1314/p/7281090.html

你可能感兴趣的文章
解决RabbitMQ远程不能访问的问题
查看>>
接口的意义(转)
查看>>
向ASP.NET自定义控件中嵌入CSS资源
查看>>
SpringMVC DeferedResult和servlet3.1 AsyncContext异步请求
查看>>
CSRF攻击与防御
查看>>
利用ab压力工具对服务器进行压力测试
查看>>
"CSRF token missing or incorrect."的解决方法.
查看>>
Jquery中ajax加载提示插件blickUI
查看>>
Tomcat 启动报错 did not find a matching property.
查看>>
Fast DFS分布式文件存储系统
查看>>
选择排序算法---直接选择排序和堆排序
查看>>
读文件
查看>>
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
查看>>
20172330 2017-2018-1 《Java程序设计》第五周学习总结
查看>>
目标检测入门
查看>>
React js ReactDOM.render 语句后面不能加分号
查看>>
iOS开发常用第三方库
查看>>
堆排序法---题目
查看>>
Js 怎么遍历json对象所有key及根据动态key获取值
查看>>
findStr
查看>>