Empfehlungen: Erweiterte Suche

GROUP BY in Verknüpften Models

Datenbankobjekte strukturieren und validieren

GROUP BY in Verknüpften Models

Beitragvon Flo » Fr 29. Okt 2010, 15:44

Hallo zusammen, heute habe ich 2 Stunden mit einem GROUP BY in einer hasMany Verknüpfung zweier Models rumgeärgert und mich stark gewundert das dies in Cake von Haus aus nicht möglich zu sein scheint...

der Code ist normalerweise
Code: Alles auswählen
<?php
class User extends AppModel {
   
    var $hasMany = array(
        'Counter' => array(
            'className' => 'Counter',
            'foreignKey' => 'user_id'
            'fields' => array('superfield','COUNT(*) AS sum'),
            'group' => array('Counter.month','Counter.day'),
            ),
        );
}
?>


Allerdings habe ich nach einigem Suchen und verstehen wie was passiert in der Core folgendes gefunden
dbo_source.php LINE 1327

Code: Alles auswählen
case 'hasMany':
    $assocData['fields'] = $this->fields($linkModel, $alias, $assocData['fields']);
    if (!empty($assocData['foreignKey'])) {
        $assocData['fields'] = array_merge($assocData['fields'], $this->fields($linkModel, $alias, array("{$alias}.{$assocData['foreignKey']}")));
    }
    $query = array(
        'conditions' => $this->__mergeConditions($this->getConstraint('hasMany', $model, $linkModel, $alias, $assocData), $assocData['conditions']),
        'fields' => array_unique($assocData['fields']),
        'table' => $this->fullTableName($linkModel),
        'alias' => $alias,
        'order' => $assocData['order'],
        'limit' => $assocData['limit'],
        'group' => null
    );
break;
 


dabei ist besonders auf 'group' => null zu achten, damit wird ein GROUP BY quasi unmöglich gemacht ausser man schreibt manuell Querys... habe dies Zeile ersetzt mit
Code: Alles auswählen
  'group' => $assocData['group']


bin damit aber verständlicherweise nicht gerade glücklich da ich bei neuen Versionen nun darauf achten muss das es funktioniert.

ist jemand von euch schonmal auf das Problem gestossen und hat eventuell eine besser Lösung als Core ändern oder Manuelle Querys schreiben?

Flo
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6

Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast