我们现在要实现的是取出网站当前栏目名称和顶级分类名称,如下所示:

列表页的和单页的不能总是写死的吧??

我能就要想办法去让他变活的才可以解决问题噢,我们已经有了他的cate_id ,然后我们就可以通过cate_id去直接获取出单前栏目的内容,这是不用质疑的,

然后我们再通过cate_id去获取我们的cate_pid ,这样我们即可找到找到我们所需要的顶级分类啦,废话不多说,因为代码会在多个页面上用得到,

为了预防代码冗余,我们的解决方法是直接在Common前台中间层里面进行写:

  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class CommonController extends Controller {
  5. function __construct(){
  6. //继承父类的构造方法,所以网站在执行的时候会先执行他
  7. parent::__construct();
  8. //头部二级分类的显示 开始
  9. $mod = M("Category");
  10. $where['cate_pid'] = '0';
  11. //这样写可以达到一种防SQL注入的效果
  12. $cate = $mod -> where($where) -> select(); //获取顶级栏目为0的结果集
  13. $this -> assign('cate',$cate);
  14. //dump($cate);
  15. //头部二级分类的显示 结束
  16.  
  17. //列表页和产品页的面包屑导航 开始
  18. $cateid = I('cate_id');
  19. $mod = D('Category');
  20. $res = $mod -> getparent($cateid);
  21. $this -> assign('res',$res);
  22. //列表页和产品页的面包屑导航 结束
  23.  
  24. //获取当前栏目 开始
  25. $cateone = $mod -> where("cate_id=$cateid") -> find();
  26. $this -> assign('cateone',$cateone);
  27. //获取当前栏目 结束
  28.  
  29. //顶级栏目的获取 开始
  30. if($cateone['cate_pid'] != '0'){
  31. //如果不等于0则需要从cate_pid找他的顶级栏目
  32. $pid = $cateone['cate_pid'];
  33. $catetop = $mod -> where("cate_id=$pid") -> find();
  34. $this -> assign('catetop',$catetop);
  35. }else{
  36. //如果等于0,直接等于顶级栏目即可
  37. $catetop = $cateone;
  38. $this -> assign('catetop',$catetop);
  39. }
  40. //顶级栏目的获取 结束
  41.  
  42. }
  43. }

然后我们再将他分配到模版里问题即可解决啦:

然后我们再来测试下我们的单页换个列表页 即可发现成展示出来了:

夺命雷公狗ThinkPHP项目之----企业网站24之网站前台获取当前栏目和顶级栏目的更多相关文章

  1. 夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现

    我们基于刚才在model层的找顶级分类的代码在进行修改即可: <?php namespace Home\Controller; use Think\Controller; class Commo ...

  2. 夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台

    我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调 ...

  3. 夺命雷公狗ThinkPHP项目之----企业网站24之网站前台列表页面包屑导航的显示

    我们做面包屑导航的原理其实也是很简单的,我们的思路是: 首先找到该分类的id ,我们可以通过大 I来进行获取得到: 然后通过 大 D 方法让数据进入model层里面进行循环迭代查询, 当然,测试时候发 ...

  4. 夺命雷公狗ThinkPHP项目之----企业网站22之网站前台中间层(解决代码冗余)

    我们如果这样写代码虽然可以实现头部二级分类的显示,但是如果再别的控制器下那么会出现显示不了.. 如果再加多一段一样的代码也可以实现出一样的效果: 但是这样会导致代码冗余现象,所以我们为了解决这个问题, ...

  5. 夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)

    我们实现网站二级分类的显示的时候,先要考虑的是直接取出顶级栏目,控制器代码如下所示: <?php namespace Home\Controller; use Think\Controller; ...

  6. 夺命雷公狗ThinkPHP项目之----企业网站27之网站前台单页的完成(从百度编辑器里面取出文章数据)

    我们的单页面里主要是为了可以取出文章分类表的栏目内容,废话先不说, 我们的实现要点: 1...获取get过来的栏目cate_id 2...然后用条件查询栏目表 <?php namespace H ...

  7. 夺命雷公狗ThinkPHP项目之----企业网站26之网站前台列表页的显示和完成分页功能

    我们用大I接收到我们get过来的栏目页的id然后通过文章的ar_cateid 来判断是不是属于该栏目下的,如果文章表ar_cateid = 栏目表的cate_id 那么就可以选出我们要查找的信息, 然 ...

  8. 夺命雷公狗ThinkPHP项目之----企业网站25之网站前台面包屑导航URL的完善

    如果想取出面包屑导航的url那么就必须在model层里面进行多取一个了: <?php namespace Home\Model; use Think\Model; class CategoryM ...

  9. 夺命雷公狗ThinkPHP项目之----企业网站20之网站前台头尾分离

    我们的网站直接让他头尾进行分离即可: 然后在代码里面找到id 为header的这段代码: 然后将整个div的内容都给弄出来,然后在view里面创建一个Public的目录,然后在创建一个header.h ...

随机推荐

  1. 最大子序列和 o(n)

    问题: 给定一整数序列A1, A2,... An (可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大 例如:整数序列-2, 11, -4, 13, -5, 2, -5, -3, ...

  2. c 生成随机不重复的整数序列

    #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <time.h> ...

  3. QcheckBox

    #include "dialog.h" #include "ui_dialog.h" #include <QtCore> #include < ...

  4. inline-block元素的空白间距

    inline-block元素的空白间距 html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  5. http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html

    http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html

  6. opacity_不透明度 cursor_鼠标形状

    1.不透明 opacity:0.5; (不透明度为50%)     filter:alpha(opacity=50);(为了兼容IE) 2.鼠标形状 cursor 属性规定要显示的光标的类型(形状). ...

  7. JavaScript:window窗口对象

    在JavaScript中,window表示的就是一个窗口对象.所以在整个处理过程之中,所有的操作都是以弹框为主 的.范例1:使用警告框 <script type="text/javas ...

  8. ELK-Python(三)

    不具有通用性,留作纪念. [root@GXB-CTRLCENTER python]# cat insert_uv.py #!/usr/bin/env python # -*- coding:utf-8 ...

  9. 淘宝杨志丰:OceanBase--淘宝结构化大数据解决之道

    时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了“数据就是业务本身”的地步.这种趋势已经让很多相信数据之力量的企业做出改变.恰逢此时,为了让更多的 ...

  10. LIB和DLL的区别与使用

    转这篇文章是因为以前有个误区,以为lib为静态库,dll为动态库,这理解并不错,但不全面.lib分两种的:(1) lib包含所有内容的静态库,应用程序用它即可,这是我理解的一种(2) lib只包含头部 ...