1
我有三個表:books
,books_categories
和categories
。蛋糕php樹模型連接表
books:
...
categories:
id, name, parent_id
books_categories:
id book_id category_id
所以一本書可能在很多類別中,一個類別可能有很多書。 和類別是一棵樹 - 每個類別都有父級(或NULL
)(幾乎是兒童)。 的問題是,如果我們有三類:a
>b
>c
和書籍屬於a
類,它不意味着它所屬的子類別b
或c
......我想即使從子類得到a
類別的所有書籍。
現在我從指定類別的所有的書是這樣的:
$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'
等?
這不利於 – user606521 2012-04-23 16:13:45
@ user606521如果您設置的類別有相互之間的父母或關聯那麼它也許會有所幫助。請參閱http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-find-threaded – 2012-04-23 17:47:24