全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

yii框架无限极分类的实现方法

用yii框架做了一个无限极分类,主要的数组转换都是粘贴的别人的代码,但还是不要脸的写出来,方便以后自己看

用的是递归,不是path路径

控制器:

protected function subtree($arr,$id=0,$lev=1){
    $subs = array(); // 子孙数组
    foreach($arr as $v) {
      if($v['parent_id'] == $id) {
        $v['lev'] = $lev;
        $subs[] = $v; // 举例说找到array('id'=>1,'name'=>'安徽','parent'=>0),
        $subs = array_merge($subs,$this->subtree($arr,$v['cat_id'],$lev+1));
      }
    }
    return $subs;
  }

public function actionCreate()
  {
    $model = new EcsCategory();
    $query = new \yii\db\Query();
    $query->select('*')
      ->from('ecs_category');
    $command = $query->createCommand();
    $res=$command->queryAll();
    $tree = $this->subtree($res,0,1);
    foreach($tree as $k=> $v) {
      $tree[$k]['new_cat_name']=str_repeat('--',$v['lev']).$v['cat_name'].str_repeat('--',$v['lev']); //str_repeat — 重复一个字符串
    }
    $arr=array(
      'new_cat_name'=>'顶级分类',
      'cat_id'=>0
    );
    array_unshift($tree,$arr);
    if ($model->load(Yii::$app->request->post()) && $model->save()) {
      return $this->redirect(['view', 'id' => $model->cat_id]);
    } else {
      return $this->render('create', [
        'model' => $model,
        'data'=>$tree,
      ]);
    }
  }

视图:

 use \yii\helpers\ArrayHelper;

<?= $form->field($model, 'parent_id')->dropDownList(ArrayHelper::map($data,'cat_id','new_cat_name') ,['prompt' => '请选择父级分类']) ?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# yii框架无限极分类  # yii无限极分类  # yii无限分类  # Yii2中YiiBase自动加载类、引用文件方法分析(autoload)  # Yii实现自动加载类地图的方法  # Yii2汉字转拼音类的实例代码  # Yii数据模型中rules类验证器用法分析  # Yii2第三方类库插件Imagine的安装和使用  # Yii2框架类自动加载机制实例分析  # Yii中Model(模型)的创建及使用方法  # Yii实现多数据库主从读写分离的方法  # Yii2中OAuth扩展及QQ互联登录实现方法  # Yii2.0建立公共方法简单示例  # 递归  # 的是  # 都是  # 安徽  # 请选择  # 大家多多  # 无限极  # parent  # array_merge  # cat_id  # foreach  # parent_id  # gt  # EcsCategory  # query  # db  # model  # return  # public  # actionCreate 


相关文章: 定制建站模板如何实现SEO优化与智能系统配置?18字教程  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  建站之星导航菜单设置与功能模块配置全攻略  建站之星安装后如何自定义网站颜色与字体?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  魔毅自助建站系统:模板定制与SEO优化一键生成指南  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  如何确保FTP站点访问权限与数据传输安全?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何制作算命网站,怎么注册算命网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  Android滚轮选择时间控件使用详解  焦点电影公司作品,电影焦点结局是什么?  如何通过虚拟主机空间快速建站?  独立制作一个网站多少钱,建立网站需要花多少钱?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  高性价比服务器租赁——企业级配置与24小时运维服务  郑州企业网站制作公司,郑州招聘网站有哪些?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在IIS服务器上快速部署高效网站?  如何用免费手机建站系统零基础打造专业网站?  微信小程序 五星评分(包括半颗星评分)实例代码  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何使用Golang table-driven基准测试_多组数据测量函数效率  如何通过cPanel快速搭建网站?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  太平洋网站制作公司,网络用语太平洋是什么意思?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  建站之星导航配置指南:自助建站与SEO优化全解析  专业商城网站制作公司有哪些,pi商城官网是哪个?  建站主机数据库如何配置才能提升网站性能?  建站之星如何快速解决建站难题?  如何用5美元大硬盘VPS安全高效搭建个人网站?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何快速生成专业多端适配建站电话?  如何制作网站标识牌,动态网站如何制作(教程)?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  网站制作服务平台,有什么网站可以发布本地服务信息?  在线教育网站制作平台,山西立德教育官网?  学校建站服务器如何选型才能满足性能需求?  山东网站制作公司有哪些,山东大源集团官网?  大连网站设计制作招聘信息,大连投诉网站有哪些?  建站之星2.7模板:企业网站建设与h5定制设计专题  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  建站之星代理如何获取技术支持?  如何在Ubuntu系统下快速搭建WordPress个人网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。