获得类别的祖先

时间:2014-06-23 06:35:59

标签: php database codeigniter

我试图收到某个类别的祖先列表。

我首先拥有类别ID,以当前类别开头。

我的类别数据库表:

ID NAME PARENT
1  Cars 0
2  Saloons 1
3  Wagons 1
4  Family 2

我试图返回此列表

Cars \ Saloons \ Family,仅知道子ID

使用ActiveRecord和Codeignighter我在我的模型中提出了这个问题

public function get_ancestors( $category_id = 0 , &$parentcategory=null)
{
    $category = $this->get('id',$category_id);

    if($parentcategory)$category->parent =$parentcategory;

    if($category)
    {
        if($category->parent_id > 0)
        {
            return $this->get_ancestors($category->parent_id, $category );
        }

        return $category;
    }

    return array();
}               

我不确定我做错了什么,(见下面的结果)

array (size=1)
  0 => 
    object(stdClass)[144]
      public 'id' => string '4' (length=2)
      public 'name' => string 'Family' (length=5)

或多或少地期待像

这样的东西
array (size=1)
  0 => 
    object(stdClass)[144]
      public 'id' => string '4' (length=2)
      public 'name' => string 'Family' (length=5)
      public 'parent' => array (size=1)
      0 => 
        object(stdClass)[144]
          public 'id' => string '2' (length=2)
          public 'name' => string 'Saloon' (length=5)
          public 'parent' => array (size=1)...

1 个答案:

答案 0 :(得分:0)

您应该通过引用传递$tree

public function get_ancestors( $category_id = 0 , &$tree = array()  )

请注意上面的&