ThinkPHP框架的标签嵌套

ThinkPHP框架的优良之处之一就是手册很好,但是我在开发的过程中还是遇到了一些问题,比如,这个标签嵌套问题!

下面是ThinkPHP框架手册提供的

模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。

系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如:

<volist name="list" id="vo">

<volist name="vo['sub']" id="sub">

{$sub.name}

</volist>

</volist>

上面的标签可以用于输出双重循环。默认的嵌套层次是3级,所以嵌套层次不能超过3层,如果需要更多的层次可以指定TAG_NESTED_LEVEL配置参数,例如:

'TAG_NESTED_LEVEL' =>5

可以改变循环嵌套级别为5级。


但是我看了还是没有明白,因为它只有前台怎么输出,并没有后台的代码,经过一番周折之后终于搞定了,和大家分享之,共同学习。

后台代码如下:

 public function left(){
        $id = $_GET['id'];
        $db_menu = M('admin_menu');
        $menu = $db_menu->where('pid = '.$id)->select();

        for($i = 0;$i< count($menu);$i++){
            $pid = $menu[$i]['id'];
            $menu[$i]['list']=$db_menu->where('pid ='.$pid)->select();
            //dump($menu2);
        }
          $this->assign('menu',$menu);
        $this->display();
    }


前台代码如下:

<foreach name="menu" item="vo">
        <div title="{$vo.name}" class="menu_list" style="padding:0px;overflow:auto;">
            <ul>
                <volist name="vo['list']" id="list">
                    <li><a href="javascript:void(0)" title="__GROUP__/{$list.url}" οnclick="showpage('__GROUP__/{$list.url}')">{$list.name}</a></li>
                </volist>
            </ul>
        </div>
    </foreach>   

此段代码为菜单调用子菜单的二级嵌套,当然你也可以将 foreach 这个标签换成 volist 这个也是完全可以的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值