Frage

Für eine Website i baue ich überprüfen müssen, ob ein Standort Verträge hat, können diese Stellen Verträge direkt mit ihnen verbunden sind oder, wenn es Teil einer größeren Organisation auch Verträge, die mit der Organisation verbunden sind.

Ich versuche, eine DQL-Abfrage erste Prüfung zu verwenden, wenn es Verträge direkt verknüpft sind, und dann, wenn es mit dieser Abfrage über eine Organistion jede verknüpft ist:

    $q = self::createQuery("l")
        ->select('sl.sc_id, sl.type, so.sc_id, so.type, l.naam, l.loc_id, l.straat, l.telefoon, l.plaats, l.postcode, l.huisnummer, l.huisnummer_achtervoegsel, o.naam')
        ->from('Locatie l, l.Organisatie o, l.Sc sl, o.Sc so')
        ->orderBy('o.naam, l.naam')
        ->execute();

Es tut, was ich will in so viel wie, dass es einen Array mit allen Daten zurückgibt ich brauche:

array(13) { 
["loc_id"]=> string(2) "93" ["org_id"]=> string(1) "9" ["naam"]=> string(12) "test" 
["Organisatie"]=> array(4) { ["org_id"]=> string(1) "9" ["naam"]=> string(3) "test"
["Sc"]=> array(1) { [0]=> array(6) { ["sc_id"]=> string(1) "1" ["sc_nummer"]=> NULL ["type"]=> string(6) "All-in" } } } 
["Sc"]=> array(0) { } 

}

Das Problem ist das doppelte [ „Sc“] -Taste drücken, weil in PHP, wenn ein Array Nachschlüssel, dass letzter Schlüssel überschreibt die erste (was ich sowieso lesen), dies macht es unmöglich, einen Scheck wie zu machen:

if(!empty($SC) or !empty($SC2) {}

Ich kann nicht scheinen, um herauszufinden, wie Lehre Namen einen des Schlüssels machen anders oder vielleicht sogar die beiden zusammenführen.

Ich habe versucht INDEXBY verwenden, aber dass der Schlüssel im Inneren des [ 'SC'] Array und nicht [ 'SC'] sich geändert.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können es in der Abfrage umbenennen. Also in Ihrem Beispiel wäre, dass nur auf dem sc_id wie etwas ändern

[...] sl.sc_id AS your_new_key [...]

Unter http://www.doctrine-project.org/projects/orm/1.2/docs/manual/dql-doctrine-query-language/en#select-queries:aggregate-values ??

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top