thinkCMF 字典表相关

字典表添加的结构如下
image.png

展示产品服务字典表,可以发现表名不对

image.png

解决办法:改成这样就正确了,所以对应的后台的表名为cmf_portal_service,除非表名改了,否则后台访问表的时候必须是这种格式。

image.png
image.png

可以看到如果parent_id的值等于id的值,那么该parent_id对应的内容就从属于该id,下图中的A从属于B,即:债券融资服务从属于科技金融服务

image.png

相关文件

BankMangerController.php文件

request->param('parent', 0, 'intval');
        $PortalServiceModel = new PortalServiceModel();
        $categoriesTree      = $PortalServiceModel->adminCategoryTree($parentId);
        //print_r($categoriesTree);
        $this->assign('categories_tree', $categoriesTree);
        return $this->fetch();
    }

}

PortalServiceModel.php文件


// +----------------------------------------------------------------------
namespace app\hatching\model;

use think\Db;
use think\Model;

class PortalServiceModel extends Model
{
    // $selectId为传递过来的id,仅用于默认选择树形结构中的某个分支
    public function adminCategoryTree($selectId)
    {
        // 从$this指向的表中取数据存储到$中。
        $categories = $this->order("id ASC")->where('parent_id',0)->select()->toArray();
        $str="";
        // 外层foreach执行一次,内容foreach执行一个循环。
        foreach ($categories as $item) {
            // 遍历所有的大类,即遍历categories中的内容,遍历出来的每个item都是大类。如果树形中的某个id等于传过来的id,就把selected赋值给左边的变量$selected存储起来,否则$selected为空
            $selected = $selectId == $item['id'] ? "selected" : "";
            $str .= "";
            // ""

            // 拿到$categories中遍历出来的某个大类(某个item)存储到categories_er中,然后利用foreach取出某个大类下的所有小类
            $categories_er=$this->where('parent_id',$item['id'])->select()->toArray();
            foreach ($categories_er as $key) {
                // 遍历某个大类下,即遍历categories_er中的内容,,遍历出来的每个key都是某个大类下对应的小类。如果树形中的某个id等于传递过来的id,就把selected赋值给左边的变量$selected存储起来,否则$selected为空
                $selected = $selectId == $key['id'] ? "selected" : "";
                // 小类前边显示└─,包在里面返回给调用者,调用者然后将内容显示到html中
                $str .= "";
            }

        }
        return $str;
    }

}

你可能感兴趣的:(thinkCMF 字典表相关)