递归获取类别树(Yii)

Dim*_*ets 2 php recursion hierarchy yii

我有一个具有以下结构的表:

类别

  • ID
  • 名称
  • PARENT_ID

我想获得具有单一功能的类别树.我在我的模型中写过这样的东西,但它不起作用.

public function getChildren($parent) { 
        $criteria = new CDbCriteria;
        $criteria->condition='parent_id=:id';
        $criteria->params=array(':id'=>$parent);
        $model = Term::model()->findAll($criteria);
        while ($model) {
            echo $model->id . "<br />";
            $this->getChildren;
        }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗?谢谢.

Dim*_*ets 6

我终于解决了这个问题.如果有人感兴趣,这是代码:

public function getChildren($parent, $level=0) { 
        $criteria = new CDbCriteria;
        $criteria->condition='parent_id=:id';
        $criteria->params=array(':id'=>$parent);
        $model = $this->findAll($criteria);
        foreach ($model as $key) {
            echo str_repeat(' — ', $level) . $key->name . "<br />";
            $this->getChildren($key->id, $level+1);
        }
    }
public function getChildrenString($parent) { 
        $criteria = new CDbCriteria;
        $criteria->condition='parent_id=:id';
        $criteria->params=array(':id'=>$parent);
        $model = $this->findAll($criteria);
        foreach ($model as $key) {
            $storage .= $key->id . ","; 
            $storage .= $this->getChildrenString($key->id);
        }
        return $storage;
    }
Run Code Online (Sandbox Code Playgroud)