Mettiamo un semplice esempio di relazione Many2Many tra Prodotti (tabella db_product) e Categorie (tabella db_category).
E’ necessario ovviamente (per un DB Relazionale) creare la tabella di correlazione che chiameremo lk_products_categories, e crei il modello relativo.
Nel sudetto modello dovresti indicare le relations ai Prodotti ed alle Categorie:
public function relations()
{
return array(
'productLkProductsCategories' => array(self::BELONGS_TO, 'Product', 'product_lk_products_categories'),
'categoryLkProductsCategories' => array(self::BELONGS_TO, 'Categorie', 'category_lk_products_categories'),
);
}
Nel Modello Product dovresti indicare la seguente relation (e potresti fare lo stesso per il model Category):
public function relations()
{
return array(
'categories' => array(self::MANY_MANY, 'Categories', '{{lk_products_categories}}(product_lk_products_categories, category_lk_products_categories)','joinType'=>'LEFT JOIN'),
);
}
Cosi facendo avrai modo di accedere tramite ActiveRecord a tutto ciò che ti serve…di certo ci sarà chi potrà darti suggerimenti migliori…ma credo che già sia qualcosa!
Spero di esserti stato utile…ed in caso di dubbi domanda pure!
P.S. Se non vado errato l’extension Giix dovrebbe già prevedere qualcosa per la gestione delle Many2Many.