yii框架。猫树功能不在模型文件中工作

时间:2014-08-19 11:13:03

标签: php yii

 public function getCats($model){

    $levels = array();
    $tree = array();
    $cur = array();

    foreach($model as $rows){

        $cur = &$levels[$rows['id']];
        $cur['parent_id'] = $rows['parent_id'];
        $cur['title'] = $rows['title'];

        if($rows['parent_id'] == 0){
            $tree[$rows['id']] = &$cur;
        }
        else{
            $levels[$rows['parent_id']]['children'][$rows['id']] = &$cur;
        }

    }
    return $tree;

}

public function getTree($arr){
        echo '<ul>';
        foreach($arr as $k=>$v){

            echo '<li>';
                echo '<a href="/page/index/id/'.$k.'">'.$v['title'].'</a>';
                    if(!empty($v['children'])){
                        echo getTree($v['children']);
                    }
            echo '</li>';

        }
    echo '</ul>';
}
public function allCats($pos) {
    $model = Category::model()->findallBySql('SELECT id, parent_id, title FROM {{category}} WHERE position="'.$pos.'"');
    $cats = getCats($model); 
    echo getTree($cats); 
}

我想知道,为什么这些功能不适用于模型文件(内部类)? 如果我在控制器中使用它们,它们工作正常,如果我将它们粘贴到模型(类)文件中,它们就会停止工作(好像它们变得不可见)。导致上述两个函数的最后一个函数。

1 个答案:

答案 0 :(得分:0)

您正在调用getCats($model)这将是一个全局函数。但它被定义为类函数/方法。称之为$this->getCats($model)$this->getTree($cats),它应该有效。