Ich habe ein Datenbanktabelle "Dokumente" mit dieser Struktur:Wie bekomme ich ein Breadcrumbs-Array aus einer Abfrage (in Laravel)?
// table documents:
|id|parent_id|name |
|1 |0 |foldername1|
|2 |0 |foldername2|
|2 |1 |subfolder |
In meinem Laravel Modell document.php Ich habe diese Methode:
public function parent()
{
return $this->belongsTo($this, 'parent_id', 'id');
}
Aber wie kann ich eine bekommen Array mit meinen Brotkrumen in meinem Controller?
Ich habe viele Dinge ausprobiert, aber es funktioniert nicht ... :(
DocumentController.php:
// NOT WORKING EXAMPLE!!
public function index()
{
$file = Document::findOrFail(2);
if ($file->parent) {
$breadcrumbs[] = $this->setBreadcrumbs($file->parent);
}
dd($breadcrumbs);
}
private function setBreadcrumbs(Document $file)
{
$arr = [];
if ($file->parent) {
$arr[] = $this->setBreadcrumbs($file->parent);
} else {
return $arr;
}
return $file->id;
}
Warum wird 'setBreadCrumbs()' rekursiv aufgerufen? Sie können testen, ob Sie $ file-> parent bekommen und sehen, ob Sie überhaupt ein Ergebnis haben. –
Ja, $ file-> parent gibt den richtigen Elternwert zurück. Aber wie kann ich $ file-> parent rekursiv in meinem Controller ausführen? – angelique000