Thinkphp无限级分类代码


Posted in PHP onNovember 11, 2015

本篇就一点一点教大家写一个无限级分类出来,其实掌握一个知识,最主要的是要掌握无限级分类的逻辑,那么写起来就很容易的多了。
首先看数据库表:xp_cate

Thinkphp无限级分类代码

控制器: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="/Article/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']">
  
</for>
{$vo['name']}
</option>
</volist>
</select><br />
新的栏目名称:<input type="text" name="name" /><br />
<input type="submit" value="添加栏目" />
</form>

显示结果如下:

Thinkphp无限级分类代码

有没有掌握无限级分类的逻辑,上文分享的thinkphp无限级分类代码,希望对大家的学习有所帮助。

PHP 相关文章推荐
如何使用动态共享对象的模式来安装PHP
Oct 09 PHP
附件名前加网站名
Mar 23 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
php实现递归的三种基本方式
Jul 04 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
如何用PHP做到页面注册审核
Mar 02 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
php验证码生成代码
Nov 11 #PHP
分享10段PHP常用代码
Nov 11 #PHP
php+mysql实现无限级分类
Nov 11 #PHP
2款PHP无限级分类实例代码
Nov 11 #PHP
PHP中set error handler函数用法小结
Nov 11 #PHP
php实现Session存储到Redis
Nov 11 #PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 #PHP
You might like
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
python使用scrapy解析js示例
2014/01/23 Python
Python中zfill()方法的使用教程
2015/05/20 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python 变量初始化空列表的例子
2019/11/28 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
python字典与json转换的方法总结
2020/12/28 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
什么是Web Service?
2012/07/25 面试题
经营理念口号
2014/06/21 职场文书
高中综合实践活动总结
2014/07/07 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
爱护环境建议书
2015/09/14 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript