/ / Ako môžem získať pole breadcrumbs z dotazu (v Laravel)? php, mysql, laravel, breadcrumbs

Ako môžem získať pole breadcrumbs z dotazu (v Laravel)? php, mysql, laravel, breadcrumbs

mám databázová tabuľka "dokumenty" s touto štruktúrou:

// table documents:
|id|parent_id|name       |
|1 |0        |foldername1|
|2 |0        |foldername2|
|2 |1        |subfolder  |

V mojom Laravelovom modeli Document.php Mám túto metódu:

 public function parent()
{
return $this->belongsTo($this, "parent_id", "id");
}

Ale ako môžem získať rad s mojimi strapcami v mojom kontrolórovi?

Snažil som sa veľa vecí, ale to nefunguje ... :(

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;
}

odpovede:

1 pre odpoveď č. 1

Ako asi len mať atribút breadcrumbs na modeli?

class File {

public function getBreadcrumbsAttribute()
{
if($this->parent){
return array_merge($this->parent->breadcrumbs, [$this->id]);
}
return [$this->id];
}
}

Potom môžete zavolať $file->breadcrumbs, To by sa dalo ľahko prispôsobiť, ak potrebujete preniesť mená súborov alebo odkazy na poľa.