symfony2: wie man group_concat in QueryBuilder verwendet

Ich bin mit nested-set (Gedmo Baum) Entität namens "Location". Die Entität "Wohnung" hat location_id und was ich brauche, es zu tun, um map-scalar-Wert mit der Bezeichnung z.B. "Pfad", um die Abfrage gibt alle Wohnungen.

In Doctrine1, hatte ich diesen code:

/**
* Add "path" to each element
* 
* @param Doctrine_Query $query
* @param string $separator
*/
protected function addScalar_path(Doctrine_Query $query, $separator=", ")
{
    $subquery = "k99.root_id=o.root_id AND k99.lft<=o.lft AND k99.rgt>=o.rgt AND k99.level<=o.level" ;

    $query->addSelect("(SELECT GROUP_CONCAT(k99.name ORDER BY k99.level SEPARATOR '$separator') FROM Location k99 WHERE $subquery) AS path") ;
}

Hinweis: "o" - alias für die primäre Abfrage.
Dieser code würde mir erlauben, zu verwenden

{foreach .... as $appartment}
   {$appartment->path}
...

Welche drucken würde:

Australia, Victoria, Melbourne, ...other children...

Wie zu tun die gleiche Sache in D2? Und wie sogar die Doktrin Durchwahlnummern in meiner symfony2 Projekt?

InformationsquelleAutor der Frage Zeljko | 2012-06-01

Schreibe einen Kommentar