首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蛋糕php树模型连接表

蛋糕php树模型连接表
EN

Stack Overflow用户
提问于 2012-04-23 22:50:34
回答 1查看 465关注 0票数 1

我有三个表:booksbooks_categoriescategories

代码语言:javascript
复制
books:
   ...

categories:
    id, name, parent_id

books_categories:
    id book_id category_id

因此,一本书可能在多个类别中,一个类别可能有多本书。类别是一棵树--每个类别都有父目录(或NULL) (以及虚拟的子目录)。问题是,如果我们有类别:a > b > c,而图书属于类别a,这并不意味着它属于子类别bc……我想要获取a类别的所有图书,甚至是子类别的图书。

现在,我从指定类别中获取所有图书,如下所示:

代码语言:javascript
复制
$options['joins'] = array(    
                array('table' => 'books_categories',
                      'alias' => 'BookCategory',
                      'type' => 'inner', 
                      'conditions' => array('Book.id = BookCategory.book_id')
                ),
                array('table' => 'categories',
                      'alias' => 'Category',
                      'type' => 'inner',
                      'conditions' => array('BookCategory.category_id = Category.id')
               ));

               $options['conditions'] = array('Category.id' => '5');


$this->set('books', $this->Book->find('all', $options));

这会正确地找到id = '5'类别中的所有图书。我还需要从子类别'5‘的书籍-是否可以在单一查询?或者我必须获取所有的父子类别(如何),然后在条件中设置'Category.id' => '5' OR 'Category.id => '6',等等?

EN

回答 1

Stack Overflow用户

发布于 2012-04-24 00:07:43

试试这个:

代码语言:javascript
复制
$allCategories = $this->Book->find('threaded');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10282867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档