2016-05-30 1 views
1

ich Everyman Klassen bin mit verbinden Datenbank Neo4jEveryman Neo4j resultset mit Pfad

Ich versuche, eine generische Funktion parseResult zu schaffen, die (von everyman Neo4j) auf resultset Objekt arbeitet und ein Array von jeder Zeile Attribut. Wenn eine normale Chiffre ausgeführt wird und ihr Resultset iteriert wird, finde ich, dass Jede Zeile der Ergebnismenge vom Typ Node ist und ich alle Eigenschaften von getProperties() abrufen kann. Aber wenn ich Chiffre laufen die Pfade zum Beispiel beinhalten alle angeschlossenen Knoten eines Benutzers zu holen Die Chiffre ist so etwas wie folgt aus:

MATCH(n:User{Uid:$uid}) -[r *1..2]-(m) RETURN m,r 

in diesem Fall einige Elemente vom Typ Row sind (in der Regel solche, die Informationen über Beziehung enthalten oder Pfad), daher kann ich getProperties() nicht aufrufen, was zu einem fatalen Fehler führt. Ich möchte eine parseResult-Funktion als eine generische Funktion machen, die verwendet werden kann, um ein assoziatives Array aus allen Ergebnistypen zu konstruieren.

Wie kann ich das tun?

Antwort

0

Sie das Objekt INFT Array umwandeln kann, verwenden Sie diese:

function object_to_array($object) 
{ 
    if (is_array($object) || is_object($object)) 
    { 
     $result = array(); 
     foreach ($object as $key => $value) 
     { 
      $result[$key] = object_to_array($value); 
     } 
     return $result; 
    } 
    return $object; 
} 
0

Haben Sie schon einmal auf einen aktualisierten Treiber für Neo4j als Upgrade?

https://github.com/graphaware/neo4j-php-client

die gleiche Abfrage mit Neo4j-php-Client-Lauf bietet Ihnen die Verfügbarkeit von Pfadobjekte, auch der Fahrer die letzten 3.0-Funktionen von Neo4j

MATCH p=(n:User {Uid:$uid}) -[r *1..2]-(m) RETURN p 

Sie können die Rückkehr Knoten anbieten oder Beziehungen aus dem Weg:

$query = 'MATCH p=(n:User {Uid:$uid}) -[r *1..2]-(m) RETURN p'; 
$result = $client->run($query); 
foreach ($result->records() as $record) { 
    $path = $record->get('p'); 
    // only nodes 
    $nodes = $path->nodes(); 
    // only rels 
    // $rels = $path->relationships(); 
} 

Mehr Infos über Wege here