我们基于刚才在model层的找顶级分类的代码在进行修改即可:

<?php
namespace Home\Controller;
use Think\Controller;
class CommonController extends Controller {
function __construct(){
//继承父类的构造方法,所以网站在执行的时候会先执行他
parent::__construct();
//头部二级分类的显示 开始
$mod = M("Category");
$where['cate_pid'] = '0';
//这样写可以达到一种防SQL注入的效果
$cate = $mod -> where($where) -> select(); //获取顶级栏目为0的结果集
$this -> assign('cate',$cate);
//dump($cate);
//头部二级分类的显示 结束 if($cateid = I('cate_id')){ //加这个判断主要避免首页报错,因为首页不用接收任何信息
//列表页和产品页的面包屑导航 开始
$mod = D('Category');
$res = $mod -> getparent($cateid);
//dump($res);
$this -> assign('res',$res);
//列表页和产品页的面包屑导航 结束 //获取当前栏目 开始
$cateone = $mod -> where("cate_id=$cateid") -> find();
$this -> assign('cateone',$cateone);
//获取当前栏目 结束 //顶级栏目的获取 开始
if($cateone['cate_pid'] != '0'){
//如果不等于0则需要从cate_pid找他的顶级栏目
$pid = $cateone['cate_pid'];
$catetop = $mod -> where("cate_id=$pid") -> find();
$this -> assign('catetop',$catetop);
//这里是左侧导航 开始
$topid = $catetop['cate_id']; //取出顶级栏目的id
$cateson = $mod -> where("cate_pid=$topid") -> select(); //相当于找儿子他爹
$this -> assign('cateson',$cateson);
//dump($cateson);
//这里是左侧导航 结束
}else{
//如果等于0,直接等于顶级栏目即可
$catetop = $cateone;
$this -> assign('catetop',$catetop); //顶级栏目找子级栏目 开始
$topid = $catetop['cate_id']; //取出顶级栏目的id
$cateson = $mod -> where("cate_pid=$topid") -> select(); //相当于找儿子他爹
$this -> assign('cateson',$cateson);
//顶级栏目找子级栏目 结束
}
} }
}

然后分配到lists.html和page.html模版上即可:

测试下:

已经可以成功调用了,,,YES,但是发现一个问题,我们的首页不能用了,

那么我们commonController.class.php首页也是继承了这,但是首页没有cate_id,所以我们给一个判断他问题即可解决:

这样我们的问题即可解决了。。。。

夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现的更多相关文章

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

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

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

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

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

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

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

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

  5. 夺命雷公狗ThinkPHP项目之----企业网站24之网站前台获取当前栏目和顶级栏目

    我们现在要实现的是取出网站当前栏目名称和顶级分类名称,如下所示: 列表页的和单页的不能总是写死的吧?? 我能就要想办法去让他变活的才可以解决问题噢,我们已经有了他的cate_id ,然后我们就可以通过 ...

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

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

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

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

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

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

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

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

随机推荐

  1. [LeetCode]题解(python):104 Maximum Depth of Binary Tree

    题目来源 https://leetcode.com/problems/maximum-depth-of-binary-tree/ Given a binary tree, find its maxim ...

  2. Swift-10--错误处理

    如何优雅地抛出错误-- 抛出错误使用throw关键字. 某个错误被抛出时,那个地方的某部分代码必要要负责处理这个错误,比如纠正这个问题.尝试另外一种方式.或是给用户提示这个错误. ***4种处理错误的 ...

  3. meta的学习记录

    meta的学习记录 最近再学响应式的布局,就先来总结一下我们的viewport. 什么是viewport呢? 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(v ...

  4. Shell数组例子

    Shell数组例子 循环打印数组,并统计数组的个数: [root@slavedb array]# cat a.sh #!/bin/bash array=( freddy freddie tang sh ...

  5. 使用代码创建AutoLayout约束

    使用代码创建AutoLayout约束 1.代码创建约束的步骤 2.代码创建约束的常用方法 3.代码创建约束的原则 4.禁用Autoresizing的原因 5. 设置相对状态栏的约束,使用self.to ...

  6. iPhone批量删除照片/视频最好用的方法

    iPhone批量删除照片/视频最好用的方法 经过大量的搜索和不懈的尝试,今天终于找到了批量删除iPhone照片最好用的方法, 于是决定写一篇博客为更多的果粉们造福! 1. 通过USB将iPhone手机 ...

  7. Speed-BI数据分析案例:2016年8月汽车销量排行榜

    据中国汽车工业协会统计分析,2016年8月,乘用车市场表现较好,当月销量环比和同比均呈较快增长.1-8月,乘用车销量总体呈稳定增长,增幅比1-7月继续小幅提升.      8月,乘用车共销售179.5 ...

  8. 初涉MySQL

    本文要点: MySQL基础 安装MySQL 配置MySQL 使用MYSQL 一.MySQL基础 MySQL 由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据 ...

  9. javaee中的中文乱码处理

    浏览器正常显示 response.setContentType("text/html;charset='utf-8'") response.setCharacterEncoding ...

  10. 解决plsql工具不能用中文字进行模糊匹配

    今天碰到了 select * from table1 t where t.name like '模块a' 查不出数据 而select * from table1 t where t.name like ...