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+mysql保存和输出文件
Oct 09 PHP
php中iconv函数使用方法
May 24 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
PHP 快速排序算法详解
Nov 10 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
PHP缓冲区用法总结
Feb 14 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
php 可变函数使用小结
Jun 12 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP asXML()函数讲解
2019/02/03 PHP
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
小程序自定义日历效果
2018/12/29 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
python 图片验证码代码
2008/12/07 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
python set内置函数的具体使用
2019/07/02 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
物流仓储计划书
2014/01/10 职场文书
生物学专业求职信
2014/07/23 职场文书
五四青年节活动总结
2015/02/10 职场文书
小学班主任自我评价
2015/03/11 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
终止合同协议书范本
2016/03/22 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL