2010-08-11 3 views
0

Pour un site Web que je construis, je dois vérifier si un site a des contrats, ces sites peuvent avoir des contrats liés directement à eux ou quand une partie d'une grande organisation a aussi des contrats liés à l'organisation.Dupliquer la clé Array dans le résultat Doctrine

Je suis en train d'utiliser une requête DQL d'abord vérifier s'il y a des contrats liés directement et s'il y liés par une organistion avec cette requête:

$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(); 

Il fait ce que je veux en tant en ce qu'il retourne un tableau avec toutes les données dont j'ai besoin:

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) { } 

}

le problème est la clé en double [ « Sc »], car en php lorsqu'un tableau a dupliquer k Eys, que la dernière touche écrasez la première (ce que je lis quand même), ce qui rend impossible de faire un chèque comme:

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

Je ne peux pas sembler comprendre comment faire le nom de la doctrine l'une des clés différentes ou peut-être même fusionner les deux.

J'ai essayé d'utiliser INDEXBY mais cela a changé la clé dans la matrice ['SC'] et non ['SC'] elle-même.

Des idées?

Répondre

Questions connexes