fastadmin框架,实现树形分类,解决编辑页面分类显示不准确的问题以及分类结构问题

本项目是使用的fastadmin自带的树形分类,直接拿过来使用的,就会出现以下问题:
1.后台分类列表页面会出现未编译的 符号
2.编辑页面会出现显示的分类对不上,而且结构混乱

首先,我们先解决比较简单的第一个问题,这里放两种解决方案:
第一:直接在对应的分类js里面,添加escape:false,这样列表页面的特殊符号就没有了;
第二:在树形类里面将 换成其他不需要转义的符号,比如–之类的;树形类的文件位置在extend/fast/Tree.php;

其次,我们再解决编辑页面显示分类对不上以及结构混乱的问题:
添加add页面是正常显示的,为了不影响add页面,我们在对应的controller下面新建一个方法,用于编辑页面调用
默认的是index方法,我们新建一个idnex2方法,代码如下:

/**
     * 查看
     */
    public function index2()
    {
    
    
        //设置过滤方法
        $this->request->filter(['strip_tags']);
        if ($this->request->isAjax()) {
    
    
            $search = $this->request->request("search");
            $type = $this->request->request("type");
            $keyValue = $this->request->request("keyValue",'');
            $keyField = $this->request->request("keyField");
            if($keyField=='id' && $keyValue){
    
    
                $list=db('itemclass')->where('id',$keyValue)->select();
                $total = count($list);
                $result = array("total" => $total, "rows" => $list);

                return json($result);
            }
            //构造父类select列表选项数据
            $list = [];

            foreach ($this->categorylist as $k => $v) {
    
    
                if ($search) {
    
    
                    if (stripos($v['name'], $search) !== false) {
    
    
                        $list[] = $v;
                    }
                } else {
    
    
                    $list = $this->categorylist;
                }
            }
            $total = count($list);
            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
        return $this->view->fetch();
    }

然后再对应的edit页面调用此方法即可

<div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Class_id')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-class_id" data-rule="required" data-source="class/index2" class="form-control selectpage" name="row[class_id]" type="text" value="{$row.class_id|htmlentities}">
        </div>
</div>

这样编辑页面就可以显示正确的分类,且分类样式呈现树形结构。

猜你喜欢

转载自blog.csdn.net/qq_36129701/article/details/106687774