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 20 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
分享下php5类中三种数据类型的区别
Jan 26 PHP
PHP常用技巧汇总
Mar 04 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
PHP微信API接口类
Aug 22 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 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
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
用JS实现的一个include函数
2007/07/21 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
Python3 处理JSON的实例详解
2017/10/29 Python
django中的setting最佳配置小结
2017/11/21 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
如何在C# winform中异步调用web services
2015/09/21 面试题
个人收入证明范本
2014/01/12 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
上诉答辩状范文
2015/05/22 职场文书
行政处罚告知书
2015/07/01 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android