background image

PHP 框架:thinkphp 的左右值无限分类

本文主要是对 thinkphp 的左右值无限分类进行了详细介绍,供大家参考下
以前一直使用父子无限分类,这种分类结构清晰,使用也简单。但若分类数量很大的话,
在查询上性能不佳。比如在做导航菜单中,我要根据某一分类查询出整个分类树的话(祖
辈)。
性能消耗是非常大的,要么做递归,要么做多次查询。故,对于分类的数据量很大的情况,
我推荐使用左右值,以减少查询上的麻烦。
代码如下:
_id

/**
+----------------------------------------------------------
* 构造函数
* @access public
* @return void
+----------------------------------------------------------
*/
public

 

function

 __construct(

$left

,

$right

,

$id

){

parent::__construct();

$this

->_left = 

$left

;

$this

->_right = 

$right

;

$this

->_id = 

$id

;

}

/**
+----------------------------------------------------------
* 根据 node$this->_id 得到该 node 的所有值
* @access public
* @param $nodeId
* @return array
+----------------------------------------------------------
*/

 

public

 

function

 getNodeById(

$nodeId

)

{

if

(

$nodeId

>0)

{

return

 

$this

->getById(

$nodeId

);

}