一、控制器代码如下:
public function index(){
//高亮显示
$action = CONTROLLER_NAME."/".ACTION_NAME;
$this->assign('action',$action);
$cate = D('article_cate');//实例化数据表caticle_cate
//找出cate中所有的祖先
$cates = $cate->where(array('pid'=>'0'))->select();
$this->assign('cates',$cates);//分配到模板中
$this->display();
}
二、在Application/common/common目录下写一个get_cate_children()函数
函数代码如下:
//传入参数为当前栏目的id(即所要调用的子栏目的id)
function get_cate_children($cate_id)
{
$cate = D('article_cate');
//当子栏目的cate_id等于传入的栏目id时,查找出所有子栏目
$cates = $cate->where(array('pid'=>$cate_id))->select();
return $cates;//返回值
}
三、模板中显示顶级栏目和二级栏目
<!--顶级栏目-->
<volist name="cates" id="vo">
<if condition="$vo.miaoshu eq $action ">
<li class="active">
<a href="__ROOT__/Weixing/{$vo.miaoshu }">{$vo.cate_name}</a>
<div class="erji">
<!--子栏目调用get_cate_children()函数-->
<volist name=":get_cate_children($vo['id'])" id="vo">
<a href="#">{$vo.cate_name}</a>
</volist>
</div>
</li>
<else />
<li>
<a href="__ROOT__/Weixing/{$vo.miaoshu }">{$vo.cate_name}</a>
<div class="erji">
<!--子栏目调用get_cate_children()函数-->
<volist name=":get_cate_children($vo['id'])" id="vo">
<a href="#">{$vo.cate_name}</a>
</volist>
</div>
</li>
</if>
</volist>