夺命雷公狗TP3.2.3商城13-----无限极分类添加
Posted 夺命雷公狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了夺命雷公狗TP3.2.3商城13-----无限极分类添加相关的知识,希望对你有一定的参考价值。
由于我们需要使用到的是模型来验证一下,所以我们先到 D:\\phpStudy\\WWW\\shop\\WEB\\Admin\\Model 下创建一个CateModel.class.php
<?php namespace Admin\\Model; use Think\\Model; class CateModel extends Model { protected $_validate = array( array(\'catename\',\'require\',\'分类名称不能为空\',1) ); }
然后来设置一下模版:
然后我们来写 Cate 控制器 的add方法:
public function add(){ $mod = D(\'cate\'); if(IS_POST){ $data[\'catename\'] = I(\'catename\'); $data[\'pid\'] = I(\'pid\'); if($mod -> create($data)){ if($mod->add($data)){ $this -> success(\'添加栏目成功\'); }else{ $this -> error(\'添加栏目失败\'); } }else{ $this -> error($mod -> getError()); } return; } $this -> display(); }
我们添加几条数据看看:
然后到数据库看看:
已经添加成功咯,但是毕竟是无限极分类,总不能永远是父级栏目吧??
那么我们回到cata控制器下的add方法中,先从数据库取出数据,然后分配到模版中:
public function add(){ $mod = D(\'cate\'); if(IS_POST){ $data[\'catename\'] = I(\'catename\'); $data[\'pid\'] = I(\'pid\'); if($mod -> create($data)){ if($mod->add($data)){ $this -> success(\'添加栏目成功\'); }else{ $this -> error(\'添加栏目失败\'); } }else{ $this -> error($mod -> getError()); } return; } $data = $mod -> select(); $this -> assign(\'data\',$data); $this -> display(); }
然后到模版进行遍历一下数据:
然后到测试看看效果:
然后添加一个父级为cate2的测试下,然后到数据库看看:
虽然添加成功了,但是我们的顶级栏目和子级栏目这样是不容易被大家区分出来,所以我们需要到D:\\phpStudy\\WWW\\shop\\WEB\\Admin\\Model 找到CateModel.class.php 对她进行修改下:
<?php namespace Admin\\Model; use Think\\Model; class CateModel extends Model { protected $_validate = array( array(\'catename\',\'require\',\'分类名称不能为空\',1) ); //定义一个方法,获取树状的分类信息 public function cateTree(){ $cats = $this->order(\'id desc\')->select(); //通过tree里面的方法进行排序 return $this->tree($cats); } public function tree($arr,$pid=0,$level=0){ //$level是自己定义出来的 static $tree = array(); foreach($arr as $v){ if($v[\'pid\']==$pid){ //说明找到,保存 $v[\'level\'] = $level; $tree[] = $v; //继续找 $this -> tree($arr,$v[\'id\'],$level+1); //这里的cate_id表的id } } return $tree; } }
然后回到控制器下,在取数据的时候用cateTree的方法来进行取数据:
public function lists(){ $this -> display(); } public function add(){ $mod = D(\'cate\'); if(IS_POST){ $data[\'catename\'] = I(\'catename\'); $data[\'pid\'] = I(\'pid\'); if($mod -> create($data)){ if($mod->add($data)){ $this -> success(\'添加栏目成功\'); }else{ $this -> error(\'添加栏目失败\'); } }else{ $this -> error($mod -> getError()); } return; } $data = $mod -> cateTree(); $this -> assign(\'data\',$data); $this -> display(); }
然后再模版页修改下添加数据的方法即可:
<td> <select name="pid"> <option value="0">顶级分类</option> <volist name="data" id="vo"> <option value="{$vo.id}"> {$vo[\'level\']|str_repeat="....",###} {$vo[\'catename\']} </option> </volist> </select> </td>
然后我去测试下添加,效果如下所示:
YES,添加成功。。
以上是关于夺命雷公狗TP3.2.3商城13-----无限极分类添加的主要内容,如果未能解决你的问题,请参考以下文章
夺命雷公狗TP3.2.3商城16-----无限极分类删除(玩法1:有子级分类的不能删除)
夺命雷公狗TP3.2.3商城17-----无限极分类删除(玩法2:栏目和栏目下的子级栏目都删除)