2009-06-04 5 views
1

Ich möchte eine Liste (Dropdown) mit HABTM Beziehung generieren. Zum Beispiel habe ich eine Tabelle namens "Benutzer", die anderen "Fahrzeuge" und "Benutzer_ Fahrzeuge" genannt.Wie finde ich ('list') von HABTM verknüpften Datensätze für ein Drop-down in CakePHP?

Was ich möchte, ist Fahrzeuge zu bekommen, die "x" Benutzer zugeordnet und in ein Dropdown-Menü setzen. Wie kann ich das erreichen?

 

class User extends AppModel { 

    var $hasAndBelongsToMany = array('Vehicle'); 
} 

Antwort

3

Dies ist eine Möglichkeit, dort eine wahrscheinlich mehrere andere.

$result = $this->User->Vehicle->find('all', array(
    'recursive' => -1, 
    'conditions' => array('Ownership.user_id' => 66), 
    'fields' => array('Vehicle.*','Ownership.*'), 
    'joins' => array(
     array(
      'table' => 'users_vehicles', 
      'alias' => 'Ownership', 
      'type' => 'LEFT', 
      'foreignKey' => false, 
      'conditions'=> 'Vehicle.id = Ownership.vehicle_id' 
     ) 
    ) 
)); 
$list = Set::combine($result,'{n}.Vehicle.id','{n}.Vehicle.name'); 
1
<code> 
$options['conditions']['Ownership.vehicle_id'] = $x; 
$options['joins'] = array(
          array(
            'table' => 'ownership', 
              'alias' => 'Ownership', 
              'type' => 'Left', 
              'conditions' => 'Vehicle.id = Ownership.vehicle_id' 
              ) 
            ); 
$this->set('vehicles', $this->Vehicle->find('list', $options)); 
</code> 
+0

für mich gearbeitet. Danke! – fabianpimminger

Verwandte Themen