CakePHP 实例教程 Categories Acts as Tree

CakePHP 实例教程 Categories Acts as Tree

ID:40051506

大小:111.44 KB

页数:6页

时间:2019-07-18

CakePHP 实例教程 Categories Acts as Tree_第1页
CakePHP 实例教程 Categories Acts as Tree_第2页
CakePHP 实例教程 Categories Acts as Tree_第3页
CakePHP 实例教程 Categories Acts as Tree_第4页
CakePHP 实例教程 Categories Acts as Tree_第5页
资源描述:

《CakePHP 实例教程 Categories Acts as Tree》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Tree是CakePHP1.2的核心Behaviors之一,可以用来轻易的实现无限极分类,并呈现树状列表。图片来源:Treetraversa,WIKIPEDIA基础实例建立数据表CREATETABLE`categories`(`id`INT(11)NOTNULLAUTO_INCREMENT,`name`VARCHAR(255)NOTNULL,`slug`VARCHAR(255)NOTNULL,`parent_id`INT(11)DEFAULTNULL,`lft`INT(11)DEFAULTNULL,`rg

2、ht`INT(11)DEFAULTNULL,`link_count`INT(11)NOTNULLDEFAULT'0',PRIMARYKEY(`id`))DEFAULTCHARSET=utf8;字段说明:parent_id,lft,rght均为必要字段,parent_id是很常用的表层级关系的做法。但在这里,lft和rght才是重点。它们表示的是一个分类的左右边界。原理如下图所示图片来源:ManagingHierarchicalDatainMySQL,dev.mysql.com建立Model使用bakesh

3、ell$cdapp$cakebakeCategoryModel:classCategoryextendsAppModel{var$name='Category';var$actsAs=array('Tree');}CategoriesController:classCategoriesControllerextendsAppController{var$name='Categories';}AddActionfunctionadd(){if(!empty($this->data)){$this->Cate

4、gory->create();if($this->Category->save($this->data)){$this->Session->setFlash(__('TheCategoryhasbeensaved',true));$this->redirect(array('action'=>'index'));}else{$this->Session->setFlash(__('TheCategorycouldnotbesaved.Please,tryagain.',true));}}$this->se

5、t('categories',$this->Category->generatetreelist(null,null,null,'--'));}add.ctpcreate('Category');?>

input('name');?>input('slug');?>select(

6、'parent_id',$categories);?>

end('Submit');?>更进一步取得层级分类classCategoryextendsAppModel{var$name='Category';var$actsAs=array('Tree');functiongetThreadCategories(){$this->recursive=-1;return$this->findAllThreaded(null,null,'lftasc');}}

7、取得下属条目当给分类下添加条目,比如Links时,基本的做法是classCategoryextendsAppModel{var$name='Category';var$hasMany=array('Links'=>array('className'=>'Link','foreignKey'=>'category_id',));}这样就通过Link.category_id连接了Link和对应的Category。包含下级分类所属条目但很多时候我们需要一个分类下的条目时,是需要包含下级分类所属条目的,此时需要添

8、加finderQuery,并去除foreignkey:classCategoryextendsAppModel{var$name='Category';var$actsAs=array('Tree');var$hasMany=array('Links'=>array('className'=>'Link','foreignKey'=>'','finderQuery'=>'SELECT`Links`.*FROM`links`AS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。