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&amp;&amp;mysql)三
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
PHP面向对象详解(三)
Dec 07 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
php 调用ffmpeg获取视频信息的简单实现
Apr 03 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
PHP内置函数生成随机数实例
Jan 18 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
第五节--克隆
2006/11/16 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
Js 中debug方式
2010/02/07 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
简单的三步vuex入门
2018/05/20 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
python版本的读写锁操作方法
2016/04/25 Python
python Flask实现restful api service
2017/12/04 Python
python实现关键词提取的示例讲解
2018/04/28 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Python----数据预处理代码实例
2019/03/20 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
区分python中的进程与线程
2020/08/13 Python
Django权限控制的使用
2021/01/07 Python
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
工商学院毕业生自荐信
2013/11/12 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
Python+Appium新手教程
2021/04/17 Python
Mysql中mvcc各场景理解应用
2022/08/05 MySQL