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

时间:2022-09-03 03:19:43

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

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

<?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模版上即可:

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

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

测试下:

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

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

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

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

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

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

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