全网整合营销服务商

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

免费咨询热线: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 


相关文章: 深入理解Android中的xmlns:tools属性  如何在云主机快速搭建网站站点?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  个人网站制作流程图片大全,个人网站如何注销?  如何用好域名打造高点击率的自主建站?  如何用低价快速搭建高质量网站?  简单实现Android验证码  常州企业网站制作公司,全国继续教育网怎么登录?  网站制作报价单模板图片,小松挖机官方网站报价?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  佛山企业网站制作公司有哪些,沟通100网上服务官网?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  php json中文编码为null的解决办法  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何用PHP工具快速搭建高效网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站之星如何实现网站加密操作?  如何通过PHP快速构建高效问答网站功能?  如何通过宝塔面板实现本地网站访问?  制作网站的公司有哪些,做一个公司网站要多少钱?  香港服务器如何优化才能显著提升网站加载速度?  公众号网站制作网页,微信公众号怎么制作?  jQuery 常见小例汇总  如何快速打造个性化非模板自助建站?  nginx修改上传文件大小限制的方法  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  微信推文制作网站有哪些,怎么做微信推文,急?  图册素材网站设计制作软件,图册的导出方式有几种?  香港服务器租用费用高吗?如何避免常见误区?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  建站之星与建站宝盒如何选择最佳方案?  大型企业网站制作流程,做网站需要注册公司吗?  建站之星如何通过成品分离优化网站效率?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  免费网站制作appp,免费制作app哪个平台好?  如何快速搭建二级域名独立网站?  建站之星展会模板:智能建站与自助搭建高效解决方案  制作网站的基本流程,设计网站的软件是什么?  如何在云主机上快速搭建网站?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  建站之星代理如何优化在线客服效率?  制作营销网站公司,淘特是干什么用的?  定制建站策划方案_专业建站与网站建设方案一站式指南  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何在景安云服务器上绑定域名并配置虚拟主机? 

您的项目需求

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