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

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

文章分类表(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' => $pid5         ];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

tp3.2中怎么访问分类及子分类下面的文章相关推荐

  1. destoon实现调用当前栏目分类及子分类和三级分类的方法

    destoon实现调用当前栏目分类及子分类和三级分类的方法: 调用当前栏目分类及子分类和三级分类是程序设计里常用的方法,本文就来详细讲述destoon实现调用当前栏目分类及子分类和三级分类的方法.具体 ...

  2. Magento 获取分类的父分类和子分类

    在Magento目录的分类页面里,经常需要左侧导航获取到父分类和子分类,可以用以下方法: 打开app/your_package/your_themes/template/catalog/navigat ...

  3. vue中axios访问Java后端跨域问题解决

    vue中axios访问Java后端跨域问题解决 参考文章: (1)vue中axios访问Java后端跨域问题解决 (2)https://www.cnblogs.com/soinve/p/9295009 ...

  4. [vue] 在子组件中怎么访问到父组件的实例?

    [vue] 在子组件中怎么访问到父组件的实例? 通过this.$parent 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣一起通关前 ...

  5. 在项目中谨慎为系统类添加分类!!!!!

    结论: 1.坚决杜绝为系统类做方法交换(见到[class_replaceMethod]格杀勿论!) 2.为系统类添加分类时候,属性和方法名必须加上[世上独一无二]的前缀,避免冲突和混淆. 之所以让我对 ...

  6. java中访问修饰符_Java中的访问修饰符介绍

    java中访问修饰符 什么是访问修饰符? (What are Access Modifiers?) Have you ever wanted to define how people would ac ...

  7. 关于局域网中无法访问的解决方法

    在局域网内安装了Windows XP的电脑不能与安装了Windows 98的电脑互相访问,安装了Windows XP的电脑与安装了Windows XP的电脑也不能互相通信.在工作站访问服务器时,工作站 ...

  8. c#,c++,qt中多线程访问UI控件线程的问题汇总

    c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...

  9. 金证部分笔试题--前中后序、IP地址分类、三次握手、BIO,NIO,AIO等

    1.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是? 解题需要知道的知识点:前序中序和后序 (1)先看下面简单的二叉树 A:根节点,B:左子节点,C:右子节点 前序: ...

最新文章

  1. mysql 多表查询练习题_mysql多表查询练习
  2. OPTEE的内存管理 :页表的创建过程
  3. Win10系统的SurfacePro4如何重装系统-3 重装完成之后的系统优化
  4. ssm整合 报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx
  5. vue调用接口修改密码_vue开发前后端分离前端如何调用后端接口?
  6. 我的教师生涯4:被忘却的第一节课
  7. 【转】IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段
  8. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】
  9. latex 生成pdf显示行号
  10. Designing Data-Intensive Applications翻译
  11. 共好:为管理者提供指南(肯·布兰佳)
  12. 4款良心电脑软件,有两款虽已停更,依然支持免费使用
  13. sublime插件 —— 一键美化HTML/CSS/JS代码
  14. 全球与中国激光光导鼓市场深度分析及发展研究预测报告
  15. docker镜像使用及连接
  16. 记录一些之前学的APPUI设计知识
  17. 解决Solaris应用程序开发内存泄漏问题
  18. 关于深市市值打新的选择
  19. 为什么学python就让我头秃
  20. 冲顶数据产品经理笔试题及解答

热门文章

  1. 【SpringBoot 】 组件管理 + 属性注入
  2. springboot配置文件application.properties参阅文章
  3. [转]当你老了,一生最后悔什么?全球统计前五名!
  4. hmac sha256 php,PHP中的HMAC-SHA-256
  5. strlen函数在哪个头文件_第二十七中、字符串处理函数-strlen、strcat、strncat
  6. python封装:隐藏对象中的属性或方法(三分钟读懂)
  7. shedlock 重启系统报错问题_关于国产湖南麒麟LINUX3.3系统兼容性问题
  8. 启动rrt什么意思_面试官:你来说一下springboot启动时的一个自动装配过程吧!...
  9. Typora、github中的markdown不同的行间距
  10. Python中defaultdict用法