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

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

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

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

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

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

<?php
namespace HomeController;
use ThinkController;
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);
        //头部二级分类的显示 结束
        
        
        //列表页和产品页的面包屑导航 开始
        $cateid = I('cate_id');
        $mod = D('Category');
        $res = $mod -> getparent($cateid);
        $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);
        }else{
            //如果等于0,直接等于顶级栏目即可
            $catetop = $cateone;
            $this -> assign('catetop',$catetop);
        }
        //顶级栏目的获取 结束
        
        
    }
}

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

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

原文地址:https://www.cnblogs.com/leigood/p/5436618.html