用ThinkPHP自动灌装实现无限级分类的方法

本文的例子说明用ThinkPHP自动灌装实现无限级分类的方法。这是一个ThinkPHP常用的功能,具有很大的实用价值。一个完整的例子,现在分享你的参考,具体步骤如下:

表aoli_cate,如下图:



1。部分行动:

的奥力 /家/ lib /动作/ cataaction.class.php文件如下:


< PHP
类cateaction延伸动作{
函数索引(){
美食= M('cate美元);
列表=美元美元美食->字段(ID、名称、PID、路径、concat(路径、ID)Bpath)->命令('bpath ')(->选择);
foreach($列为关键= >美元价值){
列出关键} { {美元美元计数的} =计数(爆炸(,$值{ 'bpath ' }));
}
美元->分配('alist ',$列表);
显示();
}
添加列
函数添加(){
美食=新catemodel(美元);

如果($ $ = $ >创建()){
如果($ - >添加()){
美元->成功('add柱成功);
其他{ }
美元->误差('add柱失败);
}
转储($ VO);
其他{ }
美元->误差($美食-> geterror());
}
}

}
>




两。模型的一部分:

的奥力 /家/ lib /模型/ catamodel.class.php文件如下:


< PHP
类catemodel延伸模型{ / /对应数据库中的表aoli_cate
保护_auto美元=阵列(
阵列('path ','tclm ',3,'callback),
);

功能TCLm(){
PID = isset(_post美元美元'pid{ })(int)$ _post { 'pid}:0;
回声(PID);
如果($ = 0){
$数据=0;
其他{ }
$;
数据列表'path美元美元= {}。'。$列表{ 'id' }; / /路径子超路径加父类ID
}
返回$数据;
}
}
>




三,视图视图部分

的奥力 /家/物流/默认/美食/ index.html页面如下:



请选择父列:
根柱



为($我= 0;美元美元我<< VO { count};我+ +){
回波;
}

{ } } { $ VO 'name'



新列名:






相信本文中所描述的例子为thinkphp程序的设计有一定的参考价值。