网站

thinkphp 网站面包屑导航处理

分类 :thinkphp     2020-06-17 人气:0 0条评论

其实用的就是子分类读取上级分类的方法。

先上数据库图

thinkphp 网站面包屑导航处理

模型中的方法
传到的$cateid是当前栏目的id

#查询当前栏目的上级分类 包括自己的id
    public function getparents($cateid)
    {
        $cateres = $this->select();
        $cates = db('cate')->find($cateid);
        $pid = $cates['pid'];
        if($pid){
            $arr = $this->_getparentsid($cateres,$pid);
        }
        $arr[] = $cates;
        return $arr;
    }

    public function _getparentsid($cateres,$pid)
    {
        static $arr = array();
        foreach($cateres as $k => $v){
            if($v['id'] == $pid){
                $arr[] = $v;
                $this->_getparentsid($cateres,$v['pid']);
            }
        }
        return $arr;
    }

控制器方法

因为文章页和列表页都会用到导致,所以用这部分判断来自于哪儿。

if(input('cateid')){
            $this->getPos(input('cateid'));
        }
        if(input('artid')){
            $articles = db('article')->field('cateid')->find(input('artid'));
            $cateid = $articles['cateid'];
            $this->getPos($cateid);
        }

getPos就是与模型对接的地方,同时将获得的信息传到模板中

public function getPos($cateid)
    {
        $cate = new cateModel();
        //输出面包屑导航处的分类名
        $posArr = $cate->getparents($cateid);
        $this->assign('posArr',$posArr);
    }

模板

当有多级栏目时,会一级级显示。

<div class="path"><a href='#'>主页</a> > 
                        {volist name='posArr' id='vo'}
                            <a href='{:url('artlist/index',array('cateid'=>$vo.id))}'>{$vo.catename}</a> > 
                        {/volist}
                    </div>

显示效果

thinkphp 网站面包屑导航处理

评论

大侠名号:   验证暗号: 点击我更换图片

继续阅读