我们基于刚才在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,所以我们给一个判断他问题即可解决:
这样我们的问题即可解决了。。。。