2012-03-30 2 views
0

Ich habe 3 Modelle in einer CakePHP 2.1 Anwendung Label, Kategorie, Produkt.Cakephp finde containable/linkable by Gruppe

Das Produkt gehört zur Kategorie & Beschriftung über eine hasOne-Beziehung.

Was ist der effizienteste Weg mit Containable oder Linkable, um die folgende Datenstruktur zu erreichen.

[Label] 
    [Category] 
     [Product] 

Grundsätzlich möchte ich Produkte nach Kategorien und Kategorien nach Labels gruppieren.

Die einzige Lösung, die ich von retriveing ​​Produkten

$this->Product->find('all', array(
    'contain' => array(
     'Category', 
     'Label 
); 

mit dem beteiligten Modifizieren ein Datum im Stil afterfind kommen konnte und dann itterating über das Ergebnis eine foreach die Datenstruktur neu zu formatieren mit dem gewünschten Ergebnis zu erzielen.

Antwort

0

Ich bin nicht ganz sicher, ob ich das richtig verstanden habe, aber basierend auf meinem Verständnis, hier ist, was Sie tun sollten.

In jeweiligen Modelle

Label hasMany Category; // label.php 
Category belongsTo Label; // category.php 
Category hasMany Product; // category.php 
Product belongsTo Category; // product.php 

In der Produktcontroller, auf dem diese Assoziationen holen wollen.

$this->Product->Label->recursive = 2; 
$this->Product->Label->find('all'); 

resultierende Struktur wäre

[Label] 
    [Category] 
     [Product]