我基本上有如下表,正从表与Zend分贝行
分类
id name categories_id_categories
1 Clothes null
2 Shirts 1
3 Pants 1
4 Electronics null
5 Tv 4
该表存储类别和子类别,如果categories_id_categories是空吗更有大类别的更有耐力子具有该ID的类别的类别。我想,所以我创建了我的分类模型,这个函数来显示这个页面上:
public function getAllCategories()
{
$select = $this->select()
->where('categories_id_categories IS NULL');
return $this->fetchAll($select);
}
public function getAllSubCategories()
{
$select = $this->select()
->where('categories_id_categories IS NOT NULL');
return $this->fetchAll($select);
}
而且我控制器上:
$categories = new Model_DbTable_Categories();
$categoryList = $categories->getAllCategories();
$categoriesAll = array();
foreach ($categoryList->toArray() as $category) {
$subCategories = $categories->getSubCategoriesByCategory($category['id']);
$category['sub_categories'] = $subCategories->toArray();
$categoriesAll[] = $category;
}
$this->view->categoryList = $categoriesAll;
因此所属分类与所有类别和关键 - 行业标准的数组是另一个包含所有子类别的数组。这工作,但我想知道是否有办法使用对象而不是数组来做到这一点,也许只使用一个查询而不是2?
如果我从表中选择所有我会得到的类别和子类别,但然后我必须移动一些逻辑到视图中选择我认为的子类别。
在此先感谢!