php - 递归获取类别树(Yii)

标签 php recursion yii hierarchy

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

类别

  • 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;
        }
}

有人可以帮我解决这个问题吗?谢谢。

最佳答案

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

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;
    }

关于php - 递归获取类别树(Yii),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11483549/

相关文章:

php - Codeigniter 按时间排序 - 查询生成

php - 如何同步mysql数据库请求?

这段代码可以称为递归吗?如果不是,下面给出的代码或递归哪个更有优势?

php - 后备过度杀伤力?

java - 我的方法应该迭代很多次但不是,为什么?

algorithm - 在不修改集合的情况下获取更改命令

mysql - Yii中使用触发器时如何使用事务

mysql - 显示左表中的所有数据认为右表缺少一些数据

php - Yii 同时使用 mongo DB 和 MySQL

php - 将 mysql_data_seek 函数更改为 PDO