• thinkphp 无限极分类的数据库设计及效果测试


    控制器继承IndexAction.class.php

     <?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends CateAction { } ?> 

    控制器代码CateAction.class.php

    <?php
    class CateAction extends Action{
    function index(){
    $cate=M('Cate');
    $list=$cate->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select();
    foreach($list as $key=>$value){
    $list[$key]['count']=count(explode('-',$value['bpath']));
    }
    $this->assign('alist',$list);
    $this->display();
    }//添加栏目
    function add(){
    $cate=new CateModel();if($vo=$cate->create()){
    if($cate->add()){
    $this->success('添加栏目成功');
    }else{
    $this->error('添加栏目失败');
    }
    }else{
    $this->error($cate->getError());
    }
    }}
    ?>

    模块代码CateModel.class.php

    <?php
    class CateModel extends Model{//对应数据库中的表xp_cate
    protected $_auto=array(
    array('path','tclm',3,'callback'),
    );function tclm(){
    $pid=isset($_POST['pid'])?(int)$_POST['pid']:0;
    echo ($pid);
    if($pid==0){
    $data=0;
    }else{
    $list=$this->where("id=$pid")->find();
    $data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id
    }
    return $data;
    }
    }
    ?>

    模板代码index.html

    <form action="__URL__/add" method="post">
    请选择父级栏目:<select name="pid" size="20">
    <option value="0">根栏目</option>
    <volist name="alist" id="vo">
    <option value="{$vo['id']}">
    <for start="0" end="$vo['count']">
    &nbsp;&nbsp;
    </for>
    {$vo['name']}
    </option>
    </volist>
    </select><br />
    新的栏目名称:<input type="text" name="name" /><br />
    <input type="submit" value="添加栏目" />
    </form>

    原文地址:http://www.thinkphp.cn/topic/2389.html

  • 相关阅读:
    shenduxuexizheshinian
    apk
    clion 激活码
    mongodb配置文件
    scrapy
    基于docker/虚拟机的esp32远程工作流
    Android JNI 之 环境安装
    使用lambda编写九九乘法表
    OpenFire 的安装和配置
    跟我学android-Notification
  • 原文地址:https://www.cnblogs.com/hellowzd/p/4099027.html
Copyright © 2020-2023  润新知