2012-10-15 67 views
-1

我有一個HABTM的關係,我想從一個產品的表像這樣的產品陣列得到一個類別表嵌套數據:的CakePHP的habtm嵌套數據

array(
    (int) 0 => array(
     'id' => (int) 1, 
     'name' => 'a', 
     'categories' => array(
      (int) 0 => array(
       'id' => (int) 1 
      ), 
      (int) 1 => array(
       'id' => (int) 2 
      ) 
     ) 
    ), 
    (int) 1 => array(
     'id' => (int) 2, 
     'name' => 'b', 
     'categories' => array(
      (int) 0 => array(
       'id' => (int) 1 
      ) 
     ) 
    ) 
) 

這是可能的蛋糕?

編輯:我會嘗試進一步解釋我想要做什麼。

請耐心等待,我是蛋糕新手,無法掌握它。

我有一個 '產品' 表:

public $hasAndBelongsToMany = array(
     'Category' => array(
      'className' => 'Category', 
      'joinTable' => 'categories_sculptures', 
      'foreignKey' => 'sculpture_id', 
      'associationForeignKey' => 'category_id', 
      'unique' => 'keepExisting' 
     ) 
    ) 

和類別表:

public $hasAndBelongsToMany = array(
     'Sculpture' => array(
      'className' => 'Sculpture', 
      'joinTable' => 'categories_sculptures', 
      'foreignKey' => 'category_id', 
      'associationForeignKey' => 'sculpture_id', 
      'unique' => 'keepExisting' 
     ) 
    ); 

和類別產品表:

public $belongsTo = array(
    'Category' => array(
     'className' => 'Category', 
     'foreignKey' => 'category_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ), 
    'Sculpture' => array(
     'className' => 'Sculpture', 
     'foreignKey' => 'sculpture_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ) 
); 

我想建一個查看雕塑的表格,並在每行中顯示每個雕塑所屬的類別(可能不止一個)。由於我是新來的蛋糕,我不知道我會怎麼做這件事。如果我只是在查詢mysql,我可以用group_concat或嵌套select來獲取這些信息,或者通過循環第一個數組並通過雕刻鍵查詢category_sculpture表並將結果添加到第一個數組中,從而低效地獲取這些信息。但我想知道以這種方式獲得這種結果的最佳方式。

回答

0

我已經找到了答案,我的需求:

$this->Sculpture->recursive = 1;