我试图收到某个类别的祖先列表。
我首先拥有类别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)...
答案 0 :(得分:0)
您应该通过引用传递$tree
。
public function get_ancestors( $category_id = 0 , &$tree = array() )
请注意上面的&
。