2011-01-04 9 views
0

Ich habe eine Menge Suche gemacht, aber noch nicht in der Lage, dies zu lösen. Ich habe ein Benutzerregistrierungsformular, wo der Benutzer eine Reihe von Filialfilialen als Favoriten bei der Registrierung auswählen kann. Ich habe diese Beziehung als HABTM eingerichtet.CakePHP: Wie kann ich die Etiketten für mehrere Kontrollkästchen anpassen

Ich kann die Filialen als mehrere Kontrollkästchen anzeigen, aber ich muss den Namen des Geschäfts (die Filialen gehört zu speichern Namen) zusammen mit dem Namen der Niederlassung in der Bezeichnung für jedes Kontrollkästchen anzeigen. Etwas wie:

Levis - Canal Walk

wo Canal Walk ist der Zweig Name und Levi ist der Laden Namen (aus einem anderen Tisch kommt)

Kann jemand bitte einen kleinen Einblick auf teilen, wie zu tun Dies?

Antwort

0

ich nicht getestet, aber es könnte funktionieren (oder Ihnen auf dem richtigen Weg helfen):

$branches = $this->Branch->find('list', array(
    'fields' => array('Branch.id', 'CONCAT(Store.name, " - ", Branch.name)'), 
    'joins' => array(
     array(
      'table' => 'stores', 
      'alias' => 'Store', 
      'type' => 'inner', 
      'foreignKey' => false, 
      'conditions' => array('Branch.store_id' => 'Store.id') 
     ) 
    ) 
)); 

dies in Ihrem Controller-Set, oder Sachen trocken halten, indem es in Ihrem Modell in einer Platzierung Funktion wie findFullList()

Hoffe, dass hilft!

0

Ich würde das alles in der Ansicht tun. Wenn Ihr HABTM Beziehung richtig eingestellt ist, sollte eine Abfrage des Store-Modell in etwa so funktionieren:

$stores = $this->Store->findAll(); 
//Returns 
Array([0] => Array(
    'Store' => array(), 
    'Branch' => array(
     [0] => array(), 
     [1] => array()...)); 

dann die $ speichert Variable in die Ansicht übergeben, und durchlaufen sie mit einem Doppel verschachtelten Schleife.

foreach($stores as $store){ 
     foreach($store['Branch'] as $branch){ 
      //Code to output checkbox by using $branch['name'] 
     } 
    } 
Verwandte Themen