牛骨文教育服务平台(让学习变的简单)
博文笔记

TP5 未定义数组索引:child

创建时间:2017-08-15 投稿人: 浏览次数:3488
{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返回的是数组

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。