TP5 未定义数组索引:child

{volist name="navData" id="vo"}
<div>
    <h3>{$vo.cat_name}</h3>
    <div>
        {volist name="vo.child" id="vi"}
        <dl>
            <dt>{$vi.cat_name}</dt>
            <dd>
                {volist name="vi.child" id="vp"}
                {$vp.cat_name}
                {/volist}
            </dd>
        </dl>
        {/volist}
    </div>
</div>
{/volist}

原因是某些数组没有child字段
解决办法 :加个判断 如果没有child字段 就赋予其空值

public function getNavData()
    {
        $return = array();
        $allData = db('category')->select();
        foreach ($allData as $k => $v)
        {
            if ($v['pid'] == 0)
            {
                if (!isset($v['child'])){
                    $v['child'] = array();
                }
                foreach ($allData as $k1 => $v1)
                {
                    if ($v1['pid'] == $v['id'])
                    {
                        if (!isset($v1['child']))
                        {
                            $v1['child'] = array();
                        }
                        foreach ($allData as $k2 => $v2)
                        {
                            if ($v2['pid'] == $v1['id'])
                            {

                                $v1['child'][] = $v2;
                            }
                        }
                        $v['child'][] = $v1;
                    }
                }
                $return[] = $v;
            }
        }
        return $return;
    }

PS : tp5中通过模型select返回的是对象 通过db select返回的是数组

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值