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 中的str_replace 函数总结
Apr 27 PHP
Dedecms常用函数解析
Feb 01 PHP
PHP 变量类型的强制转换
Oct 23 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
用PHP的socket实现客户端到服务端的通信实例详解
Feb 04 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
银行演讲稿范文
2014/01/03 职场文书
高二地理教学反思
2014/01/24 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
收入证明范本
2015/06/12 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
运动会宣传稿50字
2015/07/23 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL