无限极分类在php的开发中起到很大的作用,如何是实现一个无限极分类,有AJAX的方法,现在我们用SQL语句进行写。现在表的结构如此,pid对应的是父亲记录的id,
path对应自己的族谱关系。
建立的自己的控制器UserAction.class.php的index方法
function index(){
$dao =D('Cate');
// $list =$dao->select();现在用这些东西,虽然在数据库中有其它排序的方式,但是依旧是在没有执行数据库SQL语句之前的东西,下面为了更好地完成分类的显示。
$list = $dao->field("id,name,pid,path,concat(path,'-',id) as bpath")->order("bpath ASC")->select();
//现在就是order默认为跟table方法一样,可以取名,可以array(5) {在这里还可以再SQL中定义新的。
foreach($list as $key=>$value){
$list[$key]['count'] = count(explode('-',$list[$key]['bpath']));
}
//dump($list);
$this->assign("list",$list);
$this->display();
对应的模板在tpl-default-index.html中,代码如下
这样就可以
加入的分类可以看到他的pid为当前的父类的id,他的path为当前父类id的path加上-父类的id,所以说
建立自己的模型类的时候CateModel.class.php
有一个返回值,这样才可以进行更新他的path
对应的add方法的处理
function add(){
$dao =D('Cate');
$vo = $dao->create();
if($vo =$dao->create()){
if($dao->add()){
$this->success("添加成功");
}else{
$this->error("添加失败");
}
}else{
$this->error($dao->getError());
}
}