Laravel Query Builder für rekursive Ergebnisse? Z.B. id, parent_id
Also habe ich Daten wie folgt strukturiert:
id|parent_id|name
1 |null |foo
2 |1 |bar
3 |2 |baz
Also im Grunde genommenfoo->bar->baz
. Ich bin ratlos darüber, wie ich den Abfrage-Generator von laravel verwende, um Zeilen für eine untergeordnete Zeile und dann deren Vorfahren zu erhalten (bisparent_id == null
). Kann man das mit Laravel machen? Ich habe ein wenig recherchiert und Postgres hatRECURSIVE
während MySQL nicht (Postgres-rekursive Abfrage zum Aktualisieren der Werte eines Felds beim Durchlaufen von parent_id).
Ich glaube, MySQL hat etwas Ähnliches:Wie mache ich die rekursive SELECT-Abfrage in MySQL?
Aber wie würde ich das in Laravel umsetzen?
Mein Startcode verwendet grundsätzlich einen Abfragebereich, aber ich verstehe es einfach nicht richtig:
Model::select('name')->getParent(3); //get baz and the ancestors of baz
protected function scopeGetParent($id) {
$parent = Model::where('id', '=', $id);
return $query->getParent($parent->parent_id);
}
Das gewünschte Ergebnis ist:
name
baz
bar
foo
Irgendwelche Ideen?